I am using SAS 9.4 M3 in Windows 10. It's a new installation after a Windows rebuild.
I am trying to draw a graph from a large dataset (4.5 gb) using Sgplot. The code runs really slowly and eventually I get the following error code:
ERROR: Java virtual machine exception. java.lang.OutOfMemoryError: Java heap space.
I have tried to change the java heap space allocated to SAS using a couple of different methods:
1. by altering jre options in the the config file. I have changed the config file so that
-Xms1024m
-Xmx1024m
2. I have also tried to alter the default java heap space in Windows
https://stackoverflow.com/questions/17369522/set-default-heap-size-in-windows
3. I also tried opening SAS from a command prompt with the following jre options specified
"c:\program files\SASHome\SASFoundation\9.4\sas.exe" -ls 80 -ps 60
-config "C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg"
-jreoptions '(-Xmx1024m -Xms2048m)'
None of these has altered the heap space, which I check by running the following:
proc options option=jreoptions; run;
The log returns
JREOPTIONS=(/* other Java suboptions */ -Xmx128m -Xms128m)
What am I doing wrong?
In addition to failing to draw a graph of the whole dataset, SAS runs extremely slowly when asked to draw many graphs on subests of the data. I haven't had these problems on previous installations of SAS. The time taken to create 2128 graphs is:
NOTE: Writing HTML Body file: sashtml.htm
NOTE: PROCEDURE SGPLOT used (Total process time):
real time 4:35:13.73
cpu time 1:55.37
Which equates to approximately 3.25 secnods of CPU time per graph- which seems really long.
thank you for your reply. I owuld probably want to alter this permanently since I often use very large datasets.
I have 8 gb of RAM, so would it make sense to increase the allocation as much as I can to speed up sgplot?
The problem is, none of the methods of increasing heap space are working: I have tried a command prompt with increased jre options, AND I have also altered the config file, and yet SAS still only has 128 mb allocated.
One might also consider the actual SGPLOT code involved. How much of that 4.5 Gb dataset is actually used by Sgplot? What type of plot/plots are involved? Perhaps a different plot approach would reduce memory need.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.