And the run time goes where?

John M McIntosh johnmci at smalltalkconsulting.com
Sun Mar 11 00:38:53 UTC 2001


If I do
| foo fum |
Process allInstancesDo: [:e | e runDuration: 0].
fum _ Time
millisecondsToRun:[1 tinyBenchmarks].
(Delay forSeconds: 0) wait.
foo_ Process allInstances collect: [:e | e browserPrintString].
^Array with: fum with: foo

The delay wait triggers a process switch so I can collect data.

I get 4353ms for fum, and foo reports three process of interest that have run
of 4277ms, 153ms, 7ms  where the the 153ms one is waiting 
Semaphore>>waitTimeoutMSecs: which I believe is the ioProcess

if I do 1 tinyBenchmarks 5 times in a row, then I get more significate numbers
23,196ms for fum and foo has

Slightly altered for this email
the first () number here is the runDuration ms from the process instance, it
will look different in an image.

'(3)  1549 Delay class>>DoIt'
'(0)  3617 WeakArray class>>DoIt'
'(0)  2486 UndefinedObject>>DoIt'
'(213)  2723 Semaphore>>waitTimeoutMSecs:'
'(0)  2616 EventSensor(InputSensor)>>userInterruptWatcher'
'(5)   784 ProcessorScheduler class>>idleProcess'
'(0)  2288 nil'
'(0)  1438 nil'
'(23061)  2725 nil'
'(0)   779 SystemDictionary>>lowSpaceWatcher'

Note that I get 23,061ms for the work done in current process, but 
213 has gone to the ioProcess task,  5 to the idleProcess, and 3ms to 
the Delay process.

mmm the ioprocess gets about 0.9% of the time, not that I'm doing 
anything with my hands off the keyboard & mouse eh.

Mmm at least we can better track were the time goes.

-- 
--
===========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================





More information about the Squeak-dev mailing list