Changes file access speed degradation

Todd Blanchard tblanchard at mac.com
Sun Dec 24 00:10:28 UTC 2006


I've got this 3.7 image that has been through quite a lot.  It is the  
one where I hit the wall on changes file size.  Eventually getting  
changes condensed, I applied the patch pointed to by Tim for slower  
growing changes files.

Since this time, I am finding all operations involving accessing  
source code, browsing, compiling, generating MC snapshots, are now  
taking progressively longer periods of time.  On average, it takes  
3-5 seconds for a bit of source code to pop into the browser and MC  
has become pretty much unusable.

A MC snapshot operation message tally is attached as you can see,  
most time is spent in "primitives".

VM version I'm using is Carbon 3.8.12beta-4u although unix vm 3.9-9  
seems to exhibit the same problems.

So, what could it be?  How can I restore performance?  Rebuilding the  
image will take a couple days I'd guess with all the packages  
shoehorned into it with various compatibility tweaks I've made along  
the way.

-Todd Blanchard

- 1704830 tallies, 27602874 msec.

**Tree**
100.0% {27602874ms} MCWorkingCopy>>newVersionWithName:message:
   99.9% {27575271ms} MCPackage>>snapshot
     99.9% {27575271ms} MethodReference>>asMethodDefinition
       99.9% {27575271ms} MCMethodDefinition class>>forMethodReference:
         99.9% {27575271ms} MethodReference>>timeStamp
           99.9% {27575271ms} CompiledMethod>>timeStamp
             99.8% {27547668ms} StandardFileStream>>close
               99.8% {27547668ms} StandardFileStream>>unregister
                 99.8% {27547668ms} StandardFileStream  
class>>unregister:
                   99.8% {27547668ms} WeakRegistry>>remove:ifAbsent:
                     99.8% {27547668ms} WeakKeyDictionary(Dictionary) 
 >>removeKey:ifAbsent:
                       99.8% {27547668ms}  
WeakKeyDictionary>>fixCollisionsFrom:
                         99.8% {27547668ms} WeakKeyDictionary>>rehash
                           99.7% {27520065ms}  
WeakKeyDictionary>>scanForNil:
                             99.6% {27492463ms} primitives
**Leaves**
99.7% {27520065ms} WeakKeyDictionary>>scanForNil:

**Memory**
	old			+11,980,828 bytes
	young		-1,937,972 bytes
	used		+10,042,856 bytes



More information about the Squeak-dev mailing list