I've just checked against 3.9-4 (built from source tarball from
squeakvm.org), and it's still hideously slow. So it's down to something that changed between 3.7-7 and 3.9-4. Or perhaps CroquetPlugin or FloatMathPlugin. Or AioPlugin or UnixOSProcess :-) Tony. [hidden email] wrote: > Hi! > > Tony Garnock-Jones <[hidden email]> wrote: >> Thanks for that - I had suspected it might be a plugin. I've followed >> your suggestion, and the plugin list is almost identical except for >> OSProcess and FFI plugins. >> >> I've just run "MessageTally spyOn: [3 timesRepeat: [self nextPage]]" on >> my BookMorph. The two results are dramatically different: on the 3.7 VM, >> 477ms for the whole thing; on the 3.9 VM, 50354ms for the whole thing! A >> factor of 100x slower. > > Just wanted to mention that this might indeed be the issue I have been > experiencing with the new VM in my IRCe image - I thought it had to do > with Socket communication, but hey, it might as well be this in fact. > > regards, Göran > > |
Isn't that still the issue that TTF glyphs are not cached long enough
anymore because of a fix to the garbage collector's weak ref handling? Is there a fix in the image by now? - Bert - Am 18.05.2006 um 13:30 schrieb Tony Garnock-Jones: > I've just checked against 3.9-4 (built from source tarball from > squeakvm.org), and it's still hideously slow. So it's down to > something > that changed between 3.7-7 and 3.9-4. Or perhaps CroquetPlugin or > FloatMathPlugin. Or AioPlugin or UnixOSProcess :-) > > Tony. > > [hidden email] wrote: >> Hi! >> >> Tony Garnock-Jones <[hidden email]> wrote: >>> Thanks for that - I had suspected it might be a plugin. I've >>> followed >>> your suggestion, and the plugin list is almost identical except for >>> OSProcess and FFI plugins. >>> >>> I've just run "MessageTally spyOn: [3 timesRepeat: [self >>> nextPage]]" on >>> my BookMorph. The two results are dramatically different: on the >>> 3.7 VM, >>> 477ms for the whole thing; on the 3.9 VM, 50354ms for the whole >>> thing! A >>> factor of 100x slower. |
Bert Freudenberg wrote:
> Isn't that still the issue that TTF glyphs are not cached long enough > anymore because of a fix to the garbage collector's weak ref handling? > > Is there a fix in the image by now? Wow. That could be interesting to test. I'll try saving and loading the project with the BookMorph into a 3.9 image; failing that, I'll try building a mock couple of pages similar to those I have in my 3.8 image. I'll report back. Thanks, Tony |
I've just tried a similar setup in a 3.9b-7032 image with 3.7-7 and
3.9-svn, and I get 3.7-7 - 107 tallies, 120 msec. 3.9-svn just after Smalltalk garbageCollect - 990 tallies, 1005 msec. 3.9-svn otherwise - 1323 tallies, 1343 msec. So either the glyph caching isn't aggressive enough for this use case (I made sure to use a real-world text example, rather than homogenous repeats of the same string), or it's some other problem. Traces attached. Regards, Tony Tony Garnock-Jones wrote: > Bert Freudenberg wrote: >> Isn't that still the issue that TTF glyphs are not cached long enough >> anymore because of a fix to the garbage collector's weak ref handling? >> >> Is there a fix in the image by now? > > Wow. That could be interesting to test. I'll try saving and loading the > project with the BookMorph into a 3.9 image; failing that, I'll try > building a mock couple of pages similar to those I have in my 3.8 image. > > I'll report back. > > Thanks, > Tony > > - 107 tallies, 120 msec. **Tree** 99.1% {119ms} BookMorph>>nextPage 99.1% {119ms} BookMorph>>goToPage: 99.1% {119ms} BookMorph>>goToPage:transitionSpec: 99.1% {119ms} BookMorph>>goToPageMorph:transitionSpec: 57.0% {68ms} PasteUpMorph(Morph)>>fullReleaseCachedState |57.0% {68ms} TextMorph>>releaseCachedState | 57.0% {68ms} TextMorph>>paragraph | 57.0% {68ms} MultiNewParagraph(NewParagraph)>>compose:style:from:in: | 57.0% {68ms} MultiNewParagraph(NewParagraph)>>composeAll | 57.0% {68ms} MultiNewParagraph(NewParagraph)>>composeLinesFrom:to:delta:into:priorLines:atY: | 57.0% {68ms} TextComposer>>composeLinesFrom:to:del...ner:wantsColumnBreaks: | 57.0% {68ms} TextComposer>>composeAllLines | 50.5% {61ms} TextComposer>>composeOneLine | |43.9% {53ms} TextComposer>>composeAllRectangles: | | |43.9% {53ms} TextComposer>>composeEachRectangleIn: | | | 29.0% {35ms} CompositionScanner>>composeFrom:inRectan...leftSide:rightSide: | | | |22.4% {27ms} CompositionScanner>>setStopConditions | | | | |22.4% {27ms} CompositionScanner>>setFont | | | | | 22.4% {27ms} CompositionScanner(CharacterScanner)>>setFont | | | | | 22.4% {27ms} TextFontReference>>emphasizeScanner: | | | | | 22.4% {27ms} CompositionScanner>>setActualFont: | | | | | 21.5% {26ms} TTCFont>>descent | | | | | 21.5% {26ms} TTCFont>>pixelSize | | | | | 21.5% {26ms} TextStyle class>>pointsToPixels: | | | | | 21.5% {26ms} TextStyle class>>pixelsPerInch | | | | | 21.5% {26ms} Dictionary>>at:ifAbsentPut: | | | | | 21.5% {26ms} Dictionary>>at:ifAbsent: | | | | | 21.5% {26ms} Dictionary(Set)>>findElementOrNil: | | | | | 21.5% {26ms} Dictionary>>scanFor: | | | | | 21.5% {26ms} ByteSymbol(String)>>hash | | | | | 20.6% {25ms} primitives | | | |6.5% {8ms} CompositionScanner(CharacterScanner)>>handleIndentation | | | | 6.5% {8ms} SmallInteger(Integer)>>timesRepeat: | | | 15.0% {18ms} SmallInteger(Magnitude)>>max: | |6.5% {8ms} Rectangle>>rectanglesAt:height: | | 6.5% {8ms} Point>>corner: | | 6.5% {8ms} Rectangle class>>origin:corner: | | 6.5% {8ms} Rectangle>>setOrigin:corner: | 6.5% {8ms} Rectangle>>bottom 42.1% {51ms} PasteUpMorph>>displayWorld 42.1% {51ms} PasteUpMorph>>privateOuterDisplayWorld 42.1% {51ms} WorldState>>displayWorld:submorphs: 42.1% {51ms} WorldState>>drawWorld:submorphs:invalidAreasOn: 42.1% {51ms} FormCanvas(Canvas)>>fullDrawMorph: 42.1% {51ms} FormCanvas(Canvas)>>fullDraw: 42.1% {51ms} BookMorph(Morph)>>fullDrawOn: 42.1% {51ms} BookMorph(Morph)>>drawSubmorphsOn: 42.1% {51ms} FormCanvas(Canvas)>>fullDrawMorph: 42.1% {51ms} FormCanvas(Canvas)>>fullDraw: 42.1% {51ms} PasteUpMorph(Morph)>>fullDrawOn: 42.1% {51ms} PasteUpMorph>>drawSubmorphsOn: 42.1% {51ms} FormCanvas(Canvas)>>fullDrawMorph: 42.1% {51ms} FormCanvas(Canvas)>>fullDraw: 42.1% {51ms} TextMorph(Morph)>>fullDrawOn: 42.1% {51ms} FormCanvas(Canvas)>>drawMorph: 42.1% {51ms} FormCanvas(Canvas)>>draw: 42.1% {51ms} TextMorph>>drawOn: 42.1% {51ms} FormCanvas>>paragraph:bounds:color: 42.1% {51ms} MultiNewParagraph>>displayOn:using:at: 42.1% {51ms} MultiDisplayScanner>>displayLine:offset:leftInRun: 29.0% {35ms} TTCFont>>displayString:on:from:to:at:kern:baselineY: |15.0% {18ms} primitives |14.0% {17ms} GrafPort>>copyBits 13.1% {16ms} MultiDisplayScanner>>setStopConditions 13.1% {16ms} MultiDisplayScanner>>setFont 13.1% {16ms} TTCFont>>installOn:foregroundColor:backgroundColor: 13.1% {16ms} GrafPort>>installTTCFont:foregroundColor:backgroundColor: 13.1% {16ms} GrafPort(BitBlt)>>installTTCFont:foregroundColor:backgroundColor: 13.1% {16ms} TTCFont>>height 13.1% {16ms} TTCFont>>pixelSize 13.1% {16ms} TextStyle class>>pointsToPixels: 13.1% {16ms} TextStyle class>>pixelsPerInch 13.1% {16ms} Dictionary>>at:ifAbsentPut: **Leaves** 20.6% {25ms} ByteSymbol(String)>>hash 15.9% {19ms} SmallInteger(Magnitude)>>max: 15.0% {18ms} TTCFont>>displayString:on:from:to:at:kern:baselineY: 14.0% {17ms} GrafPort>>copyBits 13.1% {16ms} Dictionary>>at:ifAbsentPut: 6.5% {8ms} Rectangle>>bottom 6.5% {8ms} SmallInteger(Integer)>>timesRepeat: 6.5% {8ms} Rectangle>>setOrigin:corner: **Memory** old +80,608 bytes young -226,056 bytes used -145,448 bytes free +145,448 bytes **GCs** full 0 totalling 0ms (0.0% uptime) incr 10 totalling 0ms (0.0% uptime), avg 0.0ms tenures 1 (avg 10 GCs/tenure) root table 0 overflows - 1323 tallies, 1343 msec. **Tree** 100.0% {1343ms} BookMorph>>nextPage 100.0% {1343ms} BookMorph>>goToPage: 100.0% {1343ms} BookMorph>>goToPage:transitionSpec: 100.0% {1343ms} BookMorph>>goToPageMorph:transitionSpec: 81.1% {1089ms} PasteUpMorph(Morph)>>fullReleaseCachedState |81.1% {1089ms} TextMorph>>releaseCachedState | 81.1% {1089ms} TextMorph>>paragraph | 81.1% {1089ms} MultiNewParagraph(NewParagraph)>>compose:style:from:in: | 81.1% {1089ms} MultiNewParagraph(NewParagraph)>>composeAll | 81.1% {1089ms} MultiNewParagraph(NewParagraph)>>composeLinesFrom:to:delta:into:priorLines:atY: | 81.1% {1089ms} TextComposer>>composeLinesFrom:to:del...ner:wantsColumnBreaks: | 81.0% {1088ms} TextComposer>>composeAllLines | 81.0% {1088ms} TextComposer>>composeOneLine | 80.2% {1077ms} TextComposer>>composeAllRectangles: | 80.0% {1074ms} TextComposer>>composeEachRectangleIn: | 79.4% {1066ms} CompositionScanner>>composeFrom:inRectan...leftSide:rightSide: | 73.7% {990ms} CompositionScanner(CharacterScanner)>>scanCharactersFrom:to...stopConditions:kern: | |73.5% {987ms} CompositionScanner(CharacterScanner)>>basicScanCharactersFr...stopConditions:kern: | | 72.1% {968ms} TTCFont>>widthOf: | | 67.2% {902ms} TTCFont>>computeForm: | | |63.0% {846ms} TTGlyph>>asFormWithScale:ascender:...er:fgColor:bgColor:depth: | | | |63.0% {846ms} TTGlyph>>asFormWithScale:ascender:...Color:depth:replaceColor: | | | | 62.7% {842ms} TTGlyph>>asFormWithScale:ascender:...:lingGlyphWidth:emphasis: | | | | 44.8% {602ms} BalloonCanvas>>drawGeneralBezierShape...rderWidth:borderColor: | | | | |27.2% {365ms} BalloonEngine>>drawGeneralBezierShape...borderColor:transform: | | | | | |18.9% {254ms} BalloonEngine>>postFlushIfNeeded | | | | | | |17.0% {228ms} BalloonEngine>>copyBits | | | | | | | 16.5% {222ms} BalloonEngine>>copyLoopFaster | | | | | | | 16.4% {220ms} primitives | | | | | |6.1% {82ms} BalloonEngine>>registerFill:and: | | | | | | 5.4% {73ms} BalloonEngine>>registerFills: | | | | | | 2.8% {38ms} BalloonEngine>>registerFill: | | | | | | 2.4% {32ms} Color>>scaledPixelValue32 | | | | | | 2.2% {30ms} Color>>pixelWordForDepth: | | | | |17.4% {234ms} BalloonCanvas>>ensuredEngine | | | | | 9.5% {128ms} BalloonEngine class(Behavior)>>new | | | | | |9.5% {128ms} BalloonEngine>>initialize | | | | | | 5.2% {70ms} BalloonEngine>>bitBlt: | | | | | 5.0% {67ms} BalloonEngine>>bitBlt: | | | | 5.7% {77ms} Form(DisplayMedium)>>fillColor: | | | | |4.3% {58ms} Form(DisplayMedium)>>fill:fillColor: | | | | | 3.9% {52ms} Form>>fill:rule:fillColor: | | | | | 2.0% {27ms} BitBlt class>>toForm: | | | | 4.1% {55ms} BalloonCanvas class(FormCanvas class)>>on: | | | | 3.3% {44ms} BalloonCanvas(FormCanvas)>>setForm: | | | | 2.1% {28ms} GrafPort class(BitBlt class)>>toForm: | | |2.1% {28ms} TTCFont>>pixelSize | | | 2.0% {27ms} TextStyle class>>pointsToPixels: | | | 2.0% {27ms} TextStyle class>>pixelsPerInch | | 2.1% {28ms} Character>>charCode | 3.6% {48ms} CompositionScanner>>setStopConditions | 3.6% {48ms} CompositionScanner>>setFont | 3.4% {46ms} CompositionScanner(CharacterScanner)>>setFont 18.3% {246ms} PasteUpMorph>>displayWorld 18.3% {246ms} PasteUpMorph>>privateOuterDisplayWorld 18.3% {246ms} WorldState>>displayWorld:submorphs: 18.2% {244ms} WorldState>>drawWorld:submorphs:invalidAreasOn: 18.2% {244ms} FormCanvas(Canvas)>>fullDrawMorph: 18.2% {244ms} FormCanvas(Canvas)>>fullDraw: 18.2% {244ms} BookMorph(Morph)>>fullDrawOn: 18.2% {244ms} BookMorph(Morph)>>drawSubmorphsOn: 18.2% {244ms} FormCanvas(Canvas)>>fullDrawMorph: 18.2% {244ms} FormCanvas(Canvas)>>fullDraw: 18.2% {244ms} PasteUpMorph(Morph)>>fullDrawOn: 17.5% {235ms} PasteUpMorph>>drawSubmorphsOn: 17.0% {228ms} FormCanvas(Canvas)>>fullDrawMorph: 17.0% {228ms} FormCanvas(Canvas)>>fullDraw: 17.0% {228ms} TextMorph(Morph)>>fullDrawOn: 17.0% {228ms} FormCanvas(Canvas)>>drawMorph: 17.0% {228ms} FormCanvas(Canvas)>>draw: 17.0% {228ms} TextMorph>>drawOn: 17.0% {228ms} FormCanvas>>paragraph:bounds:color: 17.0% {228ms} MultiNewParagraph>>displayOn:using:at: 17.0% {228ms} MultiDisplayScanner>>displayLine:offset:leftInRun: 9.0% {121ms} MultiDisplayScanner(MultiCharacterScanner)>>scanCharactersFrom...opConditions:kern: |9.0% {121ms} MultiDisplayScanner(MultiCharacterScanner)>>basicScanCharacter...opConditions:kern: | 9.0% {121ms} TTCFont>>widthOf: | 8.7% {117ms} TTCFont>>computeForm: | 7.8% {105ms} TTGlyph>>asFormWithScale:ascender:...er:fgColor:bgColor:depth: | 7.8% {105ms} TTGlyph>>asFormWithScale:ascender:...Color:depth:replaceColor: | 7.8% {105ms} TTGlyph>>asFormWithScale:ascender:...:lingGlyphWidth:emphasis: | 5.6% {75ms} BalloonCanvas>>drawGeneralBezierShape...rderWidth:borderColor: | 2.9% {39ms} BalloonEngine>>drawGeneralBezierShape...borderColor:transform: | 2.6% {35ms} BalloonCanvas>>ensuredEngine 6.8% {91ms} TTCFont>>displayString:on:from:to:at:kern:baselineY: 4.9% {66ms} TTCFont>>glyphInfoOf:into: 4.5% {60ms} TTCFont>>formOf: 3.3% {44ms} TTCFont>>computeForm: 3.1% {42ms} TTGlyph>>asFormWithScale:ascender:...er:fgColor:bgColor:depth: 3.1% {42ms} TTGlyph>>asFormWithScale:ascender:...Color:depth:replaceColor: 3.1% {42ms} TTGlyph>>asFormWithScale:ascender:...:lingGlyphWidth:emphasis: 2.3% {31ms} BalloonCanvas>>drawGeneralBezierShape...rderWidth:borderColor: **Leaves** 19.5% {262ms} BalloonEngine>>copyLoopFaster 3.6% {48ms} Character>>charCode 2.9% {39ms} Rectangle>>setOrigin:corner: 2.1% {28ms} Rectangle>>top 2.0% {27ms} LargePositiveInteger class(Behavior)>>new: **Memory** old +150,016 bytes young +80,404 bytes used +230,420 bytes free -230,420 bytes **GCs** full 0 totalling 0ms (0.0% uptime) incr 174 totalling 62ms (5.0% uptime), avg 0.0ms tenures 2 (avg 87 GCs/tenure) root table 0 overflows - 990 tallies, 1005 msec. **Tree** 100.0% {1005ms} BookMorph>>nextPage 100.0% {1005ms} BookMorph>>goToPage: 100.0% {1005ms} BookMorph>>goToPage:transitionSpec: 99.9% {1004ms} BookMorph>>goToPageMorph:transitionSpec: 74.7% {751ms} PasteUpMorph(Morph)>>fullReleaseCachedState |74.7% {751ms} TextMorph>>releaseCachedState | 74.7% {751ms} TextMorph>>paragraph | 74.7% {751ms} MultiNewParagraph(NewParagraph)>>compose:style:from:in: | 74.7% {751ms} MultiNewParagraph(NewParagraph)>>composeAll | 74.7% {751ms} MultiNewParagraph(NewParagraph)>>composeLinesFrom:to:delta:into:priorLines:atY: | 74.7% {751ms} TextComposer>>composeLinesFrom:to:del...ner:wantsColumnBreaks: | 73.9% {743ms} TextComposer>>composeAllLines | 73.9% {743ms} TextComposer>>composeOneLine | 73.5% {739ms} TextComposer>>composeAllRectangles: | 73.3% {737ms} TextComposer>>composeEachRectangleIn: | 73.0% {734ms} CompositionScanner>>composeFrom:inRectan...leftSide:rightSide: | 67.3% {676ms} CompositionScanner(CharacterScanner)>>scanCharactersFrom:to...stopConditions:kern: | |67.1% {674ms} CompositionScanner(CharacterScanner)>>basicScanCharactersFr...stopConditions:kern: | | 65.9% {662ms} TTCFont>>widthOf: | | 61.2% {615ms} TTCFont>>computeForm: | | 57.1% {574ms} TTGlyph>>asFormWithScale:ascender:...er:fgColor:bgColor:depth: | | |57.0% {573ms} TTGlyph>>asFormWithScale:ascender:...Color:depth:replaceColor: | | | 56.7% {570ms} TTGlyph>>asFormWithScale:ascender:...:lingGlyphWidth:emphasis: | | | 40.2% {404ms} BalloonCanvas>>drawGeneralBezierShape...rderWidth:borderColor: | | | |24.4% {245ms} BalloonEngine>>drawGeneralBezierShape...borderColor:transform: | | | | |17.4% {175ms} BalloonEngine>>postFlushIfNeeded | | | | | |16.0% {161ms} BalloonEngine>>copyBits | | | | | | 15.3% {154ms} BalloonEngine>>copyLoopFaster | | | | | | 14.0% {141ms} primitives | | | | |5.1% {51ms} BalloonEngine>>registerFill:and: | | | | | 4.5% {45ms} BalloonEngine>>registerFills: | | | | | 2.4% {24ms} BalloonEngine>>registerFill: | | | | | 2.2% {22ms} Color>>scaledPixelValue32 | | | |15.7% {158ms} BalloonCanvas>>ensuredEngine | | | | 8.7% {87ms} BalloonEngine class(Behavior)>>new | | | | |8.5% {85ms} BalloonEngine>>initialize | | | | | 5.5% {55ms} BalloonEngine>>bitBlt: | | | | 4.6% {46ms} BalloonEngine>>bitBlt: | | | 5.6% {56ms} Form(DisplayMedium)>>fillColor: | | | |4.8% {48ms} Form(DisplayMedium)>>fill:fillColor: | | | | 4.4% {44ms} Form>>fill:rule:fillColor: | | | | 2.4% {24ms} BitBlt>>copy:from:in:fillColor:rule: | | | 4.5% {45ms} BalloonCanvas class(FormCanvas class)>>on: | | | 4.0% {40ms} BalloonCanvas(FormCanvas)>>setForm: | | 2.8% {28ms} TTCFont>>pixelSize | | 2.2% {22ms} TextStyle class>>pointsToPixels: | 4.2% {42ms} CompositionScanner>>setStopConditions | 4.2% {42ms} CompositionScanner>>setFont | 4.0% {40ms} CompositionScanner(CharacterScanner)>>setFont | 2.6% {26ms} TTCFont>>widthOf: | 2.4% {24ms} TTCFont>>computeForm: | 2.3% {23ms} TTGlyph>>asFormWithScale:ascender:...er:fgColor:bgColor:depth: | 2.3% {23ms} TTGlyph>>asFormWithScale:ascender:...Color:depth:replaceColor: | 2.3% {23ms} TTGlyph>>asFormWithScale:ascender:...:lingGlyphWidth:emphasis: 24.2% {243ms} PasteUpMorph>>displayWorld 24.2% {243ms} PasteUpMorph>>privateOuterDisplayWorld 24.2% {243ms} WorldState>>displayWorld:submorphs: 24.0% {241ms} WorldState>>drawWorld:submorphs:invalidAreasOn: 24.0% {241ms} FormCanvas(Canvas)>>fullDrawMorph: 24.0% {241ms} FormCanvas(Canvas)>>fullDraw: 24.0% {241ms} BookMorph(Morph)>>fullDrawOn: 23.9% {240ms} BookMorph(Morph)>>drawSubmorphsOn: 23.9% {240ms} FormCanvas(Canvas)>>fullDrawMorph: 23.9% {240ms} FormCanvas(Canvas)>>fullDraw: 23.9% {240ms} PasteUpMorph(Morph)>>fullDrawOn: 22.4% {225ms} PasteUpMorph>>drawSubmorphsOn: 22.4% {225ms} FormCanvas(Canvas)>>fullDrawMorph: 22.4% {225ms} FormCanvas(Canvas)>>fullDraw: 22.4% {225ms} TextMorph(Morph)>>fullDrawOn: 22.4% {225ms} FormCanvas(Canvas)>>drawMorph: 22.4% {225ms} FormCanvas(Canvas)>>draw: 22.4% {225ms} TextMorph>>drawOn: 22.4% {225ms} FormCanvas>>paragraph:bounds:color: 22.4% {225ms} MultiNewParagraph>>displayOn:using:at: 22.1% {222ms} MultiDisplayScanner>>displayLine:offset:leftInRun: 13.5% {136ms} MultiDisplayScanner(MultiCharacterScanner)>>scanCharactersFrom...opConditions:kern: |13.5% {136ms} MultiDisplayScanner(MultiCharacterScanner)>>basicScanCharacter...opConditions:kern: | 13.4% {135ms} TTCFont>>widthOf: | 13.0% {131ms} TTCFont>>computeForm: | 12.3% {124ms} TTGlyph>>asFormWithScale:ascender:...er:fgColor:bgColor:depth: | 12.2% {123ms} TTGlyph>>asFormWithScale:ascender:...Color:depth:replaceColor: | 12.2% {123ms} TTGlyph>>asFormWithScale:ascender:...:lingGlyphWidth:emphasis: | 9.5% {95ms} BalloonCanvas>>drawGeneralBezierShape...rderWidth:borderColor: | 4.7% {47ms} BalloonEngine>>drawGeneralBezierShape...borderColor:transform: | |2.9% {29ms} BalloonEngine>>postFlushIfNeeded | | 2.2% {22ms} BalloonEngine>>copyBits | | 2.2% {22ms} BalloonEngine>>copyLoopFaster | 4.6% {46ms} BalloonCanvas>>ensuredEngine | 2.4% {24ms} BalloonEngine class(Behavior)>>new | 2.3% {23ms} BalloonEngine>>initialize 8.2% {82ms} TTCFont>>displayString:on:from:to:at:kern:baselineY: 5.2% {52ms} TTCFont>>glyphInfoOf:into: 4.9% {49ms} TTCFont>>formOf: 3.7% {37ms} TTCFont>>computeForm: 3.5% {35ms} TTGlyph>>asFormWithScale:ascender:...er:fgColor:bgColor:depth: 3.5% {35ms} TTGlyph>>asFormWithScale:ascender:...Color:depth:replaceColor: 3.5% {35ms} TTGlyph>>asFormWithScale:ascender:...:lingGlyphWidth:emphasis: 2.3% {23ms} BalloonCanvas>>drawGeneralBezierShape...rderWidth:borderColor: **Leaves** 18.1% {182ms} BalloonEngine>>copyLoopFaster 2.9% {29ms} Character>>charCode 2.6% {26ms} Rectangle>>setOrigin:corner: 2.4% {24ms} BalloonEdgeData class(Behavior)>>new 2.4% {24ms} LargePositiveInteger class(Behavior)>>new: **Memory** old +109,396 bytes young -11,092 bytes used +98,304 bytes free -98,304 bytes **GCs** full 0 totalling 0ms (0.0% uptime) incr 129 totalling 36ms (4.0% uptime), avg 0.0ms tenures 1 (avg 129 GCs/tenure) root table 0 overflows |
In reply to this post by Bert Freudenberg-3
I recall Andreas posting a fix to the squeak list earlier in 2006, or
was that 2005? On 18-May-06, at 4:36 AM, Bert Freudenberg wrote: > Isn't that still the issue that TTF glyphs are not cached long > enough anymore because of a fix to the garbage collector's weak ref > handling? > > Is there a fix in the image by now? > > - Bert - > > Am 18.05.2006 um 13:30 schrieb Tony Garnock-Jones: > >> I've just checked against 3.9-4 (built from source tarball from >> squeakvm.org), and it's still hideously slow. So it's down to >> something >> that changed between 3.7-7 and 3.9-4. Or perhaps CroquetPlugin or >> FloatMathPlugin. Or AioPlugin or UnixOSProcess :-) >> >> Tony. >> >> [hidden email] wrote: >>> Hi! >>> >>> Tony Garnock-Jones <[hidden email]> wrote: >>>> Thanks for that - I had suspected it might be a plugin. I've >>>> followed >>>> your suggestion, and the plugin list is almost identical except for >>>> OSProcess and FFI plugins. >>>> >>>> I've just run "MessageTally spyOn: [3 timesRepeat: [self >>>> nextPage]]" on >>>> my BookMorph. The two results are dramatically different: on the >>>> 3.7 VM, >>>> 477ms for the whole thing; on the 3.9 VM, 50354ms for the whole >>>> thing! A >>>> factor of 100x slower. > > -- ======================================================================== === John M. McIntosh <[hidden email]> 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
Free forum by Nabble | Edit this page |