Memory and Performance Problems
1: I am getting insufficient memory errors when I try to run my SUDAAN program.
2: My SUDAAN program is running very slowly. Is there anything I can do to speed it up?
1: I am getting insufficient memory errors when I try to run my SUDAAN program.
There are many things you can do that may improve the situation, depending on the platform.
- In all Windows versions, close down as many other applications as possible when you are executing SUDAAN.
- Try to free up disk space on your C: (or other) drive where the TEMP directory is located, so that SUDAAN will have more swap space available.
- Increase the maximum page file size for virtual memory
Increasing Maximum Page File Size for Virtual Memory on PC Platforms
Platform |
Instructions |
| Windows NT, 2000, XP |
|
| Windows 95, 98 and ME |
|
- On Solaris, follow these instructions to increase virtual memory:
1. Determine the virtual memory you have available using the "vmstat" command.
2. To create additional virtual memory, do the following. This example will create a 1 gigabyte swap file. You may modify the size according to your need:
- create a swap file using the command
"mkfile 1000M swap" -
Execute the swap command with the -a option as
- "swap -a /usr/local/swap"
3. Attempt to execute your SUDAAN job.
4. If not successful, repeat steps 2 and 3.
5. If step 3 works, you may want save this swap file for future use. Do this by saving the information in the /etc/vfstab file. This will allow you to maintain the same virtual memory even after a reboot.
-
For SAS-Callable SUDAAN, specify the system option MEMSIZE, which controls how much memory the SAS system uses, with a larger memory size. For example, memsize 100m.
2: My SUDAAN program is running very slowly. Is there anything I can do to speed it up?
If you have a lot of other programs running at the same time as SUDAAN, SUDAAN's share of the memory may not be large enough to prevent thrashing as it continually swaps out to disk. You can try one or more of the following:
- Run this program with no other programs running.
- Run in batch mode rather than in interactive mode. This way you don't need all the memory for loading the interface.
- Try to free up disk space on the drive containing your TEMP directory so that SUDAAN has more swap space.
- If your data file is big, you may be burning time with IO. You could possibly reduce this some by converting the data to a SUDAAN file (using PROC records). By default SUDAN data sets are compressed. For large data you may significantly speed up IO even though SUDAAN must uncompress the data at run-time.