Q: incremental garbage collection overhead

alain rastoul alr.dev at free.fr
Wed Nov 21 20:23:25 UTC 2007


I'm trying to load data from a sql server database (hundred thousands rows) 
into Heaps with ODBC/FFI and I noticed that most of the time is spent in 
incremental garbage collection (about 80 to 90% of the running time of the 
load process!).
I will look at the ODBCResultSet implementation to limit 
IdentityDictionnary/Row allocation by working with preallocated arrays but 
this will solve only one of my problems.

I was wondering if there is a way to limit incremental collections by 
running them only when a certain amount of memory was allocated, I found 
setGCBiasToGrowGCLimit in SystemDictionnary (Smalltalk 
setGCBiasToGrowGCLimit: 16*1024*1024). but it doesn't work and popup a "a 
primitive has failed" error. Is it the right method ?

Another question about garbage collection is the overhead of loaded data in 
objects for the VM (hundred MB) : is there a way to know if incremental 
collection is bloated by those data or to know when they are moved to old 
space ?

Any pointers, ideas or links are welcome



More information about the Squeak-dev mailing list