Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0006876 [Squeak] Morphic tweak N/A 01-30-08 06:31 05-01-08 19:00
Reporter wiz View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Version
Summary 0006876: Why is my UI slow?
Description This question has come up more than once.

This issue is to collect probes and analysis to find an answer.

Additional Information I am in the process of creating a probe that will color code an image display to highlight the areas that slow the system down when invalidated.

The code has gotten to a useful enough stage to show some interesting results.

See the picture.

What you need to know is that the slower parts are more transparent than the fast parts.
The color pallette is essentially black with an alpha gradient.

If you look at the picture you will see that the clearest parts are over the large true type fonts.

So anything that invalidates a small portion of the true type font causes a large delay.

The large open browser is clearer than the collapsed
workspace. The clearer area is either due to the larger title or to a cascade which causes the other parts of the browser to redisplay.

I will post the probe code in due course but the results are good clues.

Yours in curiosity and service, --Jerome Peace.
Attached Files  timeShadows.jpeg [^] (8,159 bytes) 01-30-08 06:31

- Relationships

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

related to 0002144assigned andreas usage of second/third/fourth/fifth/etc 
parent of 0002084new  Each overlaping browser slows down screen updates considerably. Caching the image would speed things up. 
Not all the children of this issue are yet resolved or closed.

- Notes
(0011728 - 321 - 327 - 327 - 327 - 327 - 327)
01-31-08 15:19

In some of my explorations, one of the biggest things I found to slow things down is the calculation of the width of a list, which requires stepping through a lot of list elements, in the worst case, all of them. This is done repeatedly without caching, I believe. Look for senders of LazyListMorph>>hUnadjustedScrolRange
(0011969 - 1274 - 1440 - 1440 - 1525 - 1525 - 1525)
04-05-08 01:01
edited on: 05-01-08 19:02

More data:
Another demo

for this one in a current squeak (I used 0007160 edgars 3.11 starting point.)

from objects demo drag out the true type font.
Using the halo resize it to give the letters more height.

from the objects basic pull out a morph (I used a mixed morph)

put the cursor over the morph and click so that the morph is picked up.

move the curson in a circle a portion of which is over the truetype font and a portion which is not.

note that the cursor and pick up morph noticably slow down (and motions become jerky when over the true type bounds and speed up and become smoother when not.

What is causing the difference??

I found this when I had some how gotten a large completely invisble flash charater morph on my screen and could not understand why I was getting such a strange response from the mouse. (I was using a ported version to tak's drawtool which modifies the cursor and allows the creation of flash characters.)

If the mouse is not draging something then there is no noticable slowdown,
So there may be a handler for enterdraging or some other culrprit.
The difference is dramatic on my old 400hz imac. And I suspect this is a real proformance "drag" ;-p .

This problem will go back to 3.9 and probably earlier.


- Issue History
Date Modified Username Field Change
01-30-08 06:31 wiz New Issue
01-30-08 06:31 wiz File Added: timeShadows.jpeg
01-31-08 08:20 johnmci Relationship added related to 0002144
01-31-08 15:19 matthewf Note Added: 0011728
04-05-08 01:01 wiz Note Added: 0011969
05-01-08 19:00 wiz Relationship added parent of 0002084
05-01-08 19:02 wiz Note Edited: 0011969
05-02-08 13:36 mberth Issue Monitored: mberth

Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
56 total queries executed.
37 unique queries executed.
Powered by Mantis Bugtracker