[ENH]PackagePaneBrowser speedUp

Torge Husfeldt jean-jacques.gelee at gmx.de
Wed Apr 10 09:43:12 UTC 2002


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PackageBrowserSpeedup-th.3.cs
Type: application/x-squeak-source
Size: 3357 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20020410/2bd8b02f/PackageBrowserSpeedup-th.3.sts
-------------- next part --------------
 - 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
-------------- next part --------------
 - 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


More information about the Squeak-dev mailing list