GC profiling attempt
ross at biostat.ucsf.edu
Mon Aug 22 00:39:41 UTC 2005
I filed JMMGCMonitor.4.cs into my 3.6 era image, running with my newly
built VM (including the GC stuff).
GCMonitor run seemed to work OK, but
GCMonitor stop produced an error because GCMonitor>>unregisterSchema
tries to #setGCSemaphore to Smalltalk, which does not understand it.
I'm guessing that was something that arrived in later images. Is
there anything easy I can get it to do to work in the 3.6 image?
There is about 35k worth of info in gcStats.txt, despite the failure
of the #stop.
My image has gotten much slower than it was when I originally ran into
trouble. The source of this may differ from the original delays. Now
it's typically busy computing (stuff that shows up in the message
tally from the debug menu). This may mean that the original problem
(high CPU with low apparent activity) will be harder to catch.
In my limited testing so far, things seemed noticeably snappier in the
new VM. I was spending lots of time doing LargeInteger arithmetic,
and I noticed the new VM had a plug in for that. I'm not sure if the
old VM I'm using did.
Moving beyond a 3.6 image is going to be a project, because I'm using
some pre-release DateAndTime and related classes, which entered
officially in 3.7 (they are also the ones responsible for the
LargeInteger arithmetic). I think the migration's nearing the top of my todo
Unfortunately, for safety's sake I will continue to run my "real"
image with the older VM I have.
P.S. The current implementation of DateAndTime = and < appear to be
much faster than the ones in the classes I'm using. Much of my
compute time is going there.
More information about the Squeak-dev