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 |
On Dec 23, 2006, at 4:10 PM, Todd Blanchard wrote: > 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. This is a problem with MC having zillions of weak key items in the weak key dictionary exceeding some nice round magic number so searching for things becomes quite linear. I seen some magic doits to clean up the keys, but I don't have them handy, will look, but perhaps someone else can remember ? -- ======================================================================== === John M. McIntosh <[hidden email]> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
In reply to this post by tblanchard
Try this via a note from Bert.
(CompiledMethod classPool at: #MethodProperties) in: [:props | [props size * 3 < props capacity] whileFalse: [props grow]] On Dec 23, 2006, at 4:10 PM, Todd Blanchard wrote: > MethodReference -- ======================================================================== === John M. McIntosh <[hidden email]> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
I got 'key not found' on the #MethodProperties - so I did the grow to
WeakKeyDictionary allInstances. Hey, there's only 5 of them. Worked like a charm. Much more responsive again. Thanks! -Todd Blanchard On Dec 23, 2006, at 6:26 PM, John M McIntosh wrote: > Try this via a note from Bert. > > (CompiledMethod classPool at: #MethodProperties) in: [:props | > [props size * 3 < props capacity] whileFalse: [props grow]] > > > On Dec 23, 2006, at 4:10 PM, Todd Blanchard wrote: > >> MethodReference > > -- > ====================================================================== > ===== > John M. McIntosh <[hidden email]> > Corporate Smalltalk Consulting Ltd. http:// > www.smalltalkconsulting.com > ====================================================================== > ===== > > > |
Free forum by Nabble | Edit this page |