Memory settings

Andreas Raab andreas.raab at gmx.de
Fri May 18 05:59:11 UTC 2007


Hi Folks -

I spent the last two days in a bit of optimization mode for Qwaq Forums 
and one of the things that I found is that the memory settings Squeak 
ships with by default are abysmal for anything resembling 21st century 
memory sizes and processor speeds. I'm interested in an exchange with 
people who have been tweaking these settings to see what they come up 
with. For Forums, I have found the following to be significant:

* IGC counts: I have found that I could speed up forums by about 30% 
simply by reducing the number of IGCs and tenures via the following 
settings:
	Smalltalk vmParameterAt: 5 put: 40000. "default: 4000"
	Smalltalk vmParameterAt: 6 put: 10000. "default: 2000"
The effect of these changes is that we only do 1/10th of the frequency 
of incremental GCs.

* Total memory sizes: I have found that insufficient free space is a 
major source of slowdowns (factor of 2-3). This can be avoided by 
biasing the VM to grow instead of collect (thanks John!) and ensure that 
there is enough headroom at all times:
	Smalltalk gcBiasToGrow: true. "default: false"
	Smalltalk gcBiasToGrowLimit: 8*1024*1024. "default: n/a"
What I'm curious about is what settings other people with "21st century 
loads" on their applications have found to make a difference. The above 
seem to work out well for forums, significantly increasing the frame 
rate on small machines (up to 30%) but without having individual IGCs to 
be too slow for real-time processing (voice chat and rendering in our 
cases).

Cheers,
   - Andreas



More information about the Squeak-dev mailing list