Hi list, I hope i am not reinventing the wheel or working on a dead branch, but the following cs makes package browsers on my system much more useable.
From Preamble:
Change Set: PackageBrowserSpeedup-th Date: 10 April 2002 Author: Torge Husfeldt
Speeds up PackageBrowsers quite a bit (at least on slow machines). You will notice that a slow system is inaccesable for a few miliseconds every second. This is due to superfluous computation being made in the step method of PackageBrowsers. I inserted a cache for two really frequently computed values and made sure they don't break anything. This makes a great difference in the feel of the whole mophic sytem when a Package Browser is active. This should really work. A hint that my updating ctrieria are correct can be found in the inline comment of ClassOrganizer>>renameCategory:toBe:
I attached also the spy results to prove the speedup. Though the _feel_ is much more informative to me than these numbers.
Squeak on, Torge
- 647 tallies, 12470 msec.
**Tree** 99.8% {12445ms} PasteUpMorph>>doOneCycle 99.8% {12445ms} WorldState>>doOneCycleFor: 96.9% {12083ms} WorldState>>interCyclePause: |96.9% {12083ms} Delay>>wait | 96.8% {12071ms} primitives 2.9% {362ms} WorldState>>doOneCycleNowFor: **Leaves** 96.8% {12071ms} Delay>>wait
**Memory** old +0 bytes young +161,340 bytes used +161,340 bytes free -161,340 bytes
**GCs** full 0 totalling 0ms (0.0% uptime) incr 24 totalling 75ms (1.0% uptime), avg 3.0ms tenures 0 root table 0 overflows
- 645 tallies, 12201 msec.
**Tree** 100.0% {12201ms} PasteUpMorph>>doOneCycle 100.0% {12201ms} WorldState>>doOneCycleFor: 66.8% {8150ms} WorldState>>interCyclePause: |66.5% {8114ms} Delay>>wait 33.2% {4051ms} WorldState>>doOneCycleNowFor: 29.5% {3599ms} PasteUpMorph>>runStepMethods 29.5% {3599ms} WorldState>>runStepMethodsIn: 29.5% {3599ms} WorldState>>runLocalStepMethodsIn: 29.5% {3599ms} StepMessage(MorphicAlarm)>>value: 29.5% {3599ms} SystemWindow>>stepAt: 29.5% {3599ms} PackagePaneBrowser(Object)>>stepAt:in: 29.5% {3599ms} PackagePaneBrowser(CodeHolder)>>stepIn: 29.3% {3575ms} PackagePaneBrowser(CodeHolder)>>updateListsAndCodeIn: 14.7% {1794ms} PackagePaneBrowser(CodeHolder)>>updateCodePaneIfNeeded |14.7% {1794ms} PackagePaneBrowser(CodeHolder)>>didCodeChangeElsewhere | 14.7% {1794ms} PackagePaneBrowser(Browser)>>selectedClassOrMetaClass | 14.7% {1794ms} PackagePaneBrowser>>selectedClass | 7.4% {903ms} PackagePaneBrowser(Browser)>>selectedClassName | |7.4% {903ms} PackagePaneBrowser>>classList [7.4% {903ms} PackagePaneBrowser>>selectedSystemCategoryName [ 3.9% {476ms} PackagePaneBrowser>>systemCategoryList [ |3.4% {415ms} PackagePaneBrowser>>package [ | 3.4% {415ms} PackagePaneBrowser>>packageList [ 3.6% {439ms} PackagePaneBrowser>>package [ 3.6% {439ms} PackagePaneBrowser>>packageList | 7.3% {891ms} PackagePaneBrowser>>selectedSystemCategoryName | 3.9% {476ms} PackagePaneBrowser>>systemCategoryList [3.3% {403ms} PackagePaneBrowser>>package [ 3.3% {403ms} PackagePaneBrowser>>packageList | 3.4% {415ms} PackagePaneBrowser>>package [3.4% {415ms} PackagePaneBrowser>>packageList 14.6% {1781ms} PackagePaneBrowser(Object)>>updateListsAndCodeIn: 14.6% {1781ms} PluggableListMorph>>verifyContents 14.4% {1757ms} PluggableListMorph>>getList 7.3% {891ms} PackagePaneBrowser>>classList |7.3% {891ms} PackagePaneBrowser>>selectedSystemCategoryName | 4.0% {488ms} PackagePaneBrowser>>systemCategoryList [3.6% {439ms} PackagePaneBrowser>>package [ 3.6% {439ms} PackagePaneBrowser>>packageList | 3.3% {403ms} PackagePaneBrowser>>package [3.3% {403ms} PackagePaneBrowser>>packageList 3.9% {476ms} PackagePaneBrowser>>systemCategoryList |3.3% {403ms} PackagePaneBrowser>>package | 3.3% {403ms} PackagePaneBrowser>>packageList 3.3% {403ms} PackagePaneBrowser>>packageList **Leaves** 66.5% {8114ms} Delay>>wait 9.6% {1171ms} Symbol>>asString 4.0% {488ms} String class>>stringHash:initialHash: 2.2% {268ms} String(SequenceableCollection)>>copyFrom:to:
**Memory** old +0 bytes young +25,696 bytes used +25,696 bytes free -25,696 bytes
**GCs** full 0 totalling 0ms (0.0% uptime) incr 48 totalling 163ms (1.0% uptime), avg 3.0ms tenures 0 root table 0 overflows
Torge Husfeldt wrote:
Hi list, I hope i am not reinventing the wheel or working on a dead branch, but the following cs makes package browsers on my system much more useable.
From Preamble:
Change Set: PackageBrowserSpeedup-th Date: 10 April 2002 Author: Torge Husfeldt
Speeds up PackageBrowsers quite a bit (at least on slow machines). You will notice that a slow system is inaccesable for a few miliseconds every second. This is due to superfluous computation being made in the step method of PackageBrowsers. I inserted a cache for two really frequently computed values and made sure they don't break anything. This makes a great difference in the feel of the whole mophic sytem when a Package Browser is active. This should really work. A hint that my updating ctrieria are correct can be found in the inline comment of ClassOrganizer>>renameCategory:toBe:
Sorry, there was a little glitch in that version
I attached also the spy results to prove the speedup. Though the _feel_ is much more informative to me than these numbers.
Squeak on, Torge
Name: PackageBrowserSpeedup-th.3.cs
PackageBrowserSpeedup-th.3.cs Type: Squeak source code (application/x-squeak-source) Encoding: base64
Name: SpyResultsWithSpeedup.text
SpyResultsWithSpeedup.text Type: Plain Text (text/plain) Encoding: 7bit
Name: SpyResultsWithoutSpeedup.text
SpyResultsWithoutSpeedup.text Type: Plain Text (text/plain) Encoding: 7bit
squeak-dev@lists.squeakfoundation.org