Morphic slow in 2.8 (was: Forecast)

Bob Arning arning at charm.net
Wed Oct 4 22:04:18 UTC 2000


On Wed, 04 Oct 2000 15:37:50 -0600 David Farber <dfarber at numenor.com> wrote:
>I have experienced the same thing on my 200MHz NT machine moving from 2.7
>to 2.8. The place it is most evident to me is with buttons; in 2.7 there
>was no latency between clicking on a button and the button being
>highlighted. In 2.8 there is a very noticably latency (probably ~ 500-700
>msec). It is very easy to see (at least on my machine), for example, when
>you press the "New game" button in FreeCell <grin>. For that reason, I have
>not upgraded my FreeCell image to 2.8.

One thing I recall happening in 2.8 was the addition of a gradient background to FreeCell and I wonder if there is some problem there since this requires Balloon to work properly. I have enclosed a little test that may illuminate the issue.

**** This does something odd to FreeCell, so you may not want to save the image after filing it in. ****

OK, having said that,

1. File in the code below.
2. Start FreeCell.
3. Pick game #1
4. Double click on an exposed card.
5. Stand back and be amazed.

When it's done, a MessageTally will appear. Let's compare numbers. I get

 - 336 tallies, 7132 msec.

and
**Leaves**
20.8% {1483ms} GrafPort>>copyBits
8.9% {635ms} BalloonEngine>>copyLoopFaster
4.5% {321ms} Rectangle>>top
3.6% {257ms} Rectangle>>right
3.0% {214ms} DisplayScreen>>forceToScreen:
2.7% {193ms} Rectangle>>bottom
2.7% {193ms} Rectangle>>left
2.4% {171ms} FormCanvas>>isVisible:
2.4% {171ms} AlignmentMorph>>fullBounds

in my 2.8 image. If your numbers are wildly different, maybe we should look deeper into what the MessageTally says.

Cheers,
Bob


=== code follows ===
'From Squeak2.9alpha of 17 July 2000 [latest update: #2706] on 25 September 2000 at 1:31:54 pm'!

!FreeCellBoard methodsFor: 'initialization' stamp: 'RAA 9/25/2000 13:26'!
pickGame: aSeedOrNil

	| sorted |
	cardDeck _ PlayingCardDeck newDeck.
	aSeedOrNil == 1 ifTrue: [
		sorted _ cardDeck submorphs asSortedCollection: [ :a :b | a cardNumber >= b cardNumber].
		cardDeck
			removeAllMorphs;
			addAllMorphs: sorted.
	] ifFalse: [
		aSeedOrNil ifNotNil:[cardDeck seed: aSeedOrNil].
		cardDeck shuffle.
	].
	self resetBoard! !


!PlayingCardDeck methodsFor: 'events' stamp: 'RAA 9/25/2000 13:31'!
doubleClickOnCard: aCard

	| answer |
	(target ~~ nil and: [cardDoubleClickSelector ~~ nil]) ifTrue: [
		MessageTally spyOn: [
			answer _ target perform: cardDoubleClickSelector with: self with: aCard.
		].
		^answer
	]! !





More information about the Squeak-dev mailing list