Squeak on Solaris
Julian Fitzell
julian at beta4.com
Sun Sep 28 19:02:27 UTC 2003
Ned Konz wrote:
> On Saturday 27 September 2003 11:15 pm, Julian Fitzell wrote:
>
>>I'm not sure what you mean here. I opened a ProcessBrowser: the UI
>>process is using 45%, the idle process 45%, the I/O process 8%, and
>>there's a sempahore>>waitTimeoutMSecs: (one of three) that is using
>>1%. The image isn't doing anything at the moment except waiting for
>>a seaside (well, comanche I guess) connection... I'm not sure what
>>I'm looking for in terms of message tallies.
>
>
> Why in the world is the UI using so much time?
>
> Easy way to do this:
>
> * open a Process Browser
> * turn on the CPU watcher
> * turn on the auto-update
> * don't move the mouse.
>
> The UI process should be *way* down in the percentage numbers (less
> than 10%). If it isn't, try closing all other windows, deleting
> Morphs, making flaps disappear, etc.
>
> Then, select the UI process. Get the context menu and choose "profile
> messages". Give it 10 seconds or so.
>
> You should see where the time is going.
>
> By the way, I've found that changing the 16 msec interval in
> MessageTally class>>spyOnProcess:forMilliseconds: (and spyOn:) to 1
> msec improves the resolution considerably.
>
Ok, closing all the windows except the ProcessBrowser didn't seem to do
much. The UI process still stayed between 35% and 45%. I also stopped
the Seaside process. Some combination of all the above seemed to bring
squeak's processor usage (as shown by top) down to something more like
10% (instead of 20%)...
Anyway, the method profile on the UI process is pasted below. This is a
remote X session because I don't have physical access to the box but the
overall squeak processor usage doesn't seem to be affected by whether I
have vm-display-X11 or vm-display-null. I think I said before but to
reiterate, this is the 3.6g-2 VM compiled from source, and this is a 3.5
image. I should probably try a 3.6 stock image and see if there's any
difference.
Thanks,
Julian
- 1032 tallies, 10561 msec.
**Tree**
96.6% {10202ms} Project class>>spawnNewProcess
|96.5% {10191ms} PasteUpMorph>>doOneCycle
| 96.5% {10191ms} WorldState>>doOneCycleFor:
| 83.7% {8840ms} WorldState>>doOneCycleNowFor:
| |81.7% {8628ms} WorldState>>displayWorldSafely:
| | 81.7% {8628ms} PasteUpMorph>>displayWorld
| | 81.7% {8628ms} PasteUpMorph>>privateOuterDisplayWorld
| | 81.7% {8628ms} WorldState>>displayWorld:submorphs:
| | 81.1% {8565ms} WorldState>>forceDamageToScreen:
| | 81.1% {8565ms} DisplayScreen>>forceDamageToScreen:
| | 81.1% {8565ms} DisplayScreen>>forceToScreen:
| 12.8% {1352ms} WorldState>>interCyclePause:
| 12.6% {1331ms} Delay>>wait
| 12.5% {1320ms} primitives
3.4% {359ms} ProcessBrowser>>startAutoUpdate
3.4% {359ms} ProcessBrowser>>updateProcessList
**Leaves**
81.1% {8565ms} DisplayScreen>>forceToScreen:
12.5% {1320ms} Delay>>wait
2.3% {243ms} Time class>>millisecondClockValue
**Memory**
old +0 bytes
young -122,708 bytes
used -122,708 bytes
free +122,708 bytes
**GCs**
full 0 totalling 0ms (0.0% uptime)
incr 23 totalling 63ms (1.0% uptime), avg 3.0ms
tenures 0
root table 0 overflows
More information about the Squeak-dev
mailing list
|