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