Hello,

While profiling some I/O code that takes ~20 seconds to execute under my
local image, the report says that about ~13 seconds is waste on
OtherProcesses -> ProcessorScheduler class>>idleProcess. I could not
understand what this idleProcess do by looking at the code. First I thought
this could be time waiting the I/O operation to terminate, but that don't
make much sense because I have the same code on a Digital Ocean Doplet and
it takes ~6 seconds to execute.

Can someone help me understand what does this time on idleProcess means?


The full report is:

 - 18407 tallies, 18605 msec.

**Tree**
--------------------------------
Process: (40s) Morphic UI Process: nil
--------------------------------
25.1% {4663ms} UndefinedObject>>DoIt
  25.1% {4663ms}
TweetsServiceRestConsumer(TweetsService)>>hashesTop:usingLastTweetsUpTo:fromHandler:
    25.0% {4656ms}
TweetsServiceRestConsumer>>fetchLastTweetsUpTo:fromHandler:
      14.3% {2653ms} OAuthProvider>>httpGet:
        |14.3% {2653ms} ZnOAuth1Service>>httpGet:using:
        |  14.3% {2653ms} ZnOAuth1Service>>executeRequest:token:
        |    14.3% {2653ms}
ZnOAuth1Service>>executeRequest:token:followRedirects:
        |      14.2% {2646ms} ZnClient>>execute
        |        14.2% {2646ms} ZnClient>>withProgressDo:
        |          14.2% {2646ms} ZnSignalProgress class(DynamicVariable
class)>>value:during:
        |            14.2% {2646ms}
ZnSignalProgress(DynamicVariable)>>value:during:
        |              14.2% {2646ms} BlockClosure>>ensure:
        |                14.2% {2646ms}
ZnSignalProgress(DynamicVariable)>>value:during:
        |                  14.2% {2646ms} ZnClient>>withProgressDo:
        |                    14.2% {2646ms} ZnClient>>execute
        |                      14.2% {2646ms} ZnClient>>executeWithTimeout
        |                        14.2% {2646ms} ZnClient>>withTimeoutDo:
        |                          14.2% {2646ms} ZnConnectionTimeout
class(DynamicVariable class)>>value:during:
        |                            14.2% {2646ms}
ZnConnectionTimeout(DynamicVariable)>>value:during:
        |                              14.2% {2646ms} BlockClosure>>ensure:
        |                                14.2% {2646ms}
ZnConnectionTimeout(DynamicVariable)>>value:during:
        |                                  14.2% {2646ms}
ZnClient>>withTimeoutDo:
        |                                    14.2% {2646ms}
ZnClient>>executeWithTimeout
        |                                      14.2% {2646ms}
BlockClosure>>on:do:
        |                                        14.2% {2646ms}
ZnClient>>executeWithTimeout
        |                                          14.2% {2646ms}
ZnClient>>executeWithRetriesRemaining:
        |                                            14.2% {2644ms}
BlockClosure>>on:do:
        |                                              14.2% {2644ms}
ZnClient>>executeWithRetriesRemaining:
        |                                                14.2% {2644ms}
ZnClient>>executeWithRedirectsRemaining:
        |                                                  14.2% {2641ms}
ZnClient>>getConnectionAndExecute
        |                                                    13.8% {2569ms}
BlockClosure>>ensure:
        |                                                      13.8%
{2569ms} ZnClient>>getConnectionAndExecute
        |                                                        13.8%
{2569ms} ZnClient>>executeRequestResponse
        |                                                          13.8%
{2569ms} ZnClient>>readResponse
        |                                                            13.8%
{2569ms} ZnResponse class(ZnMessage class)>>readFrom:
        |
 13.8% {2569ms} ZnResponse(ZnMessage)>>readFrom:
        |
 13.8% {2559ms} ZnResponse>>readEntityFrom:
        |
 13.8% {2559ms} ZnResponse(ZnMessage)>>readEntityFrom:
        |
 13.8% {2559ms} ZnEntityReader>>readEntity
        |
   13.8% {2559ms} ZnEntityReader>>readEntityFromStream
        |
     13.7% {2555ms} ZnEntityReader>>readFrom:usingType:andLength:
        |
       13.7% {2555ms} ZnEntity class>>readFrom:usingType:andLength:
        |
         13.7% {2555ms} ZnStringEntity>>readFrom:
        |
           13.7% {2550ms} BlockClosure>>on:do:
        |
             13.7% {2550ms} ZnStringEntity>>readFrom:
        |
               13.7% {2550ms}
ZnUTF8Encoder>>readInto:startingAt:count:fromStream:
        |
                 13.7% {2550ms}
ZnUTF8Encoder>>optimizedReadInto:startingAt:count:fromStream:
        |
                   13.7% {2550ms}
ZnLimitedReadStream>>readInto:startingAt:count:
        |
                     13.7% {2547ms}
ZdcSecureSocketStream(ZdcOptimizedSocketStream)>>readInto:startingAt:count:
        |
                       13.7% {2547ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                         9.0% {1669ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                           |5.8% {1076ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                           |  |3.6% {671ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                           |  |  |1.8% {337ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                           |  |  |  |1.2% {225ms} BlockClosure>>on:do:
        |
                           |  |  |  |  1.2% {225ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                           |  |  |  |    1.2% {225ms}
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketWaitForData
        |
                           |  |  |  |      1.2% {225ms}
Socket>>waitForDataFor:
        |
                           |  |  |  |        1.2% {225ms}
Socket>>waitForDataFor:ifClosed:ifTimedOut:
        |
                           |  |  |  |          1.2% {225ms}
Semaphore>>waitTimeoutMSecs:
        |
                           |  |  |  |            1.2% {225ms}
DelayWaitTimeout>>wait
        |
                           |  |  |  |              1.2% {225ms}
BlockClosure>>ensure:
        |
                           |  |  |  |                1.2% {225ms}
DelayWaitTimeout>>wait
        |
                           |  |  |  |                  1.1% {196ms}
DelayWaitTimeout(Delay)>>unschedule
        |
                           |  |  |  |                    1.1% {196ms}
DelayExperimentalSpinScheduler>>unschedule:
        |
                           |  |  |1.8% {335ms} BlockClosure>>on:do:
        |
                           |  |  |  1.8% {335ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                           |  |  |    1.8% {335ms}
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketWaitForData
        |
                           |  |  |      1.8% {335ms} Socket>>waitForDataFor:
        |
                           |  |  |        1.8% {335ms}
Socket>>waitForDataFor:ifClosed:ifTimedOut:
        |
                           |  |  |          1.8% {335ms}
Semaphore>>waitTimeoutMSecs:
        |
                           |  |  |            1.8% {335ms}
DelayWaitTimeout>>wait
        |
                           |  |  |              1.8% {335ms}
BlockClosure>>ensure:
        |
                           |  |  |                1.8% {335ms}
DelayWaitTimeout>>wait
        |
                           |  |  |                  1.5% {273ms}
DelayWaitTimeout(Delay)>>unschedule
        |
                           |  |  |                    1.5% {273ms}
DelayExperimentalSpinScheduler>>unschedule:
        |
                           |  |2.2% {405ms} BlockClosure>>on:do:
        |
                           |  |  2.2% {405ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                           |  |    2.2% {405ms}
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketWaitForData
        |
                           |  |      2.2% {405ms} Socket>>waitForDataFor:
        |
                           |  |        2.2% {405ms}
Socket>>waitForDataFor:ifClosed:ifTimedOut:
        |
                           |  |          2.2% {405ms}
Semaphore>>waitTimeoutMSecs:
        |
                           |  |            2.2% {405ms}
DelayWaitTimeout>>wait
        |
                           |  |              2.2% {405ms}
BlockClosure>>ensure:
        |
                           |  |                2.2% {405ms}
DelayWaitTimeout>>wait
        |
                           |  |                  1.7% {314ms}
DelayWaitTimeout(Delay)>>unschedule
        |
                           |  |                    1.7% {314ms}
DelayExperimentalSpinScheduler>>unschedule:
        |
                           |3.2% {592ms} BlockClosure>>on:do:
        |
                           |  3.2% {592ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                           |    3.2% {592ms}
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketWaitForData
        |
                           |      3.2% {592ms} Socket>>waitForDataFor:
        |
                           |        3.2% {592ms}
Socket>>waitForDataFor:ifClosed:ifTimedOut:
        |
                           |          3.2% {592ms}
Semaphore>>waitTimeoutMSecs:
        |
                           |            3.2% {592ms} DelayWaitTimeout>>wait
        |
                           |              3.2% {592ms} BlockClosure>>ensure:
        |
                           |                3.2% {592ms}
DelayWaitTimeout>>wait
        |
                           |                  2.3% {429ms}
DelayWaitTimeout(Delay)>>unschedule
        |
                           |                    2.3% {429ms}
DelayExperimentalSpinScheduler>>unschedule:
        |
                         4.7% {876ms} BlockClosure>>on:do:
        |
                           4.7% {876ms}
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>fillReadBuffer
        |
                             4.7% {876ms}
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketWaitForData
        |
                               4.7% {876ms} Socket>>waitForDataFor:
        |
                                 4.7% {876ms}
Socket>>waitForDataFor:ifClosed:ifTimedOut:
        |
                                   4.7% {876ms} Semaphore>>waitTimeoutMSecs:
        |
                                     4.7% {876ms} DelayWaitTimeout>>wait
        |
                                       4.7% {876ms} BlockClosure>>ensure:
        |
                                         4.7% {876ms} DelayWaitTimeout>>wait
        |
                                           2.9% {532ms}
DelayWaitTimeout(Delay)>>unschedule
        |
                                             |2.9% {532ms}
DelayExperimentalSpinScheduler>>unschedule:
        |
                                           1.4% {268ms} primitives
      10.8% {2002ms} NeoJSONObject class>>fromString:
        10.8% {2002ms} NeoJSONReader>>next
          10.8% {2002ms} NeoJSONReader>>parseValue
            10.8% {2002ms} NeoJSONReader>>parseList
              10.8% {2002ms} Array class(SequenceableCollection
class)>>streamContents:
                10.8% {2002ms} Array class(SequenceableCollection
class)>>new:streamContents:
                  10.8% {2002ms} NeoJSONReader>>parseList
                    10.8% {2002ms} NeoJSONReader>>parseListElementsDo:
                      10.8% {2002ms} NeoJSONReader>>parseListDo:
                        10.8% {2002ms} NeoJSONReader>>parseListElementsDo:
                          10.8% {2002ms} NeoJSONReader>>parseValue
                            10.8% {2002ms} NeoJSONReader>>parseMap
                              10.8% {2002ms}
NeoJSONReader>>parseMapKeysAndValuesDo:
                                10.8% {2002ms}
NeoJSONReader>>parseMapKeysDo:
                                  10.8% {2002ms} NeoJSONReader>>parseMapDo:
                                    10.7% {1994ms}
NeoJSONReader>>parseMapKeysDo:
                                      9.6% {1785ms}
NeoJSONReader>>parseMapKeysAndValuesDo:
                                        |9.2% {1717ms}
NeoJSONReader>>parseValue
                                        |  8.6% {1600ms}
NeoJSONReader>>parseMap
                                        |    8.6% {1600ms}
NeoJSONReader>>parseMapKeysAndValuesDo:
                                        |      8.6% {1600ms}
NeoJSONReader>>parseMapKeysDo:
                                        |        8.6% {1600ms}
NeoJSONReader>>parseMapDo:
                                        |          8.5% {1577ms}
NeoJSONReader>>parseMapKeysDo:
                                        |            6.4% {1187ms}
NeoJSONReader>>parseMapKeysAndValuesDo:
                                        |              |5.6% {1041ms}
NeoJSONReader>>parseValue
                                        |              |  3.8% {708ms}
NeoJSONReader>>parseList
                                        |              |    3.8% {706ms}
Array class(SequenceableCollection class)>>streamContents:
                                        |              |      3.8% {706ms}
Array class(SequenceableCollection class)>>new:streamContents:
                                        |              |        3.7%
{693ms} NeoJSONReader>>parseList
                                        |              |          3.7%
{693ms} NeoJSONReader>>parseListElementsDo:
                                        |              |            3.7%
{693ms} NeoJSONReader>>parseListDo:
                                        |              |              3.7%
{689ms} NeoJSONReader>>parseListElementsDo:
                                        |              |
 3.7% {689ms} NeoJSONReader>>parseValue
                                        |              |
 3.7% {687ms} NeoJSONReader>>parseMap
                                        |              |
 3.7% {687ms} NeoJSONReader>>parseMapKeysAndValuesDo:
                                        |              |
   3.7% {687ms} NeoJSONReader>>parseMapKeysDo:
                                        |              |
     3.7% {687ms} NeoJSONReader>>parseMapDo:
                                        |              |
       3.6% {672ms} NeoJSONReader>>parseMapKeysDo:
                                        |              |
         3.0% {550ms} NeoJSONReader>>parseMapKeysAndValuesDo:
                                        |              |
           2.6% {486ms} NeoJSONReader>>parseValue
                                        |              |
             1.5% {285ms} NeoJSONReader>>parseMap
                                        |              |
               1.5% {285ms} NeoJSONReader>>parseMapKeysAndValuesDo:
                                        |              |
                 1.5% {285ms} NeoJSONReader>>parseMapKeysDo:
                                        |              |
                   1.5% {285ms} NeoJSONReader>>parseMapDo:
                                        |              |
                     1.5% {285ms} NeoJSONReader>>parseMapKeysDo:
                                        |              |
                       1.4% {252ms} NeoJSONReader>>parseMapKeysAndValuesDo:
                                        |              |
                         1.3% {236ms} NeoJSONReader>>parseValue
                                        |              |
                           1.0% {193ms} NeoJSONReader>>parseMap
                                        |              |
                             1.0% {193ms}
NeoJSONReader>>parseMapKeysAndValuesDo:
                                        |              |
                               1.0% {193ms} NeoJSONReader>>parseMapKeysDo:
                                        |              |
                                 1.0% {188ms} NeoJSONReader>>parseMapDo:
                                        |            1.9% {347ms}
NeoJSONReader>>parsePropertyName
                                        |              1.1% {196ms}
NeoJSONReader>>parseValue
                                        |                1.0% {189ms}
NeoJSONReader>>parseString
                                      1.0% {189ms}
NeoJSONReader>>parsePropertyName
--------------------------------
Process: other processes
--------------------------------
73.2% {13628ms} ProcessorScheduler class>>startUp
  |73.2% {13628ms} ProcessorScheduler class>>idleProcess
1.4% {259ms} WeakArray class>>restartFinalizationProcess
  1.4% {259ms} WeakArray class>>finalizationProcess
    1.4% {257ms} primitives
**Leaves**
73.3% {13631ms} ProcessorScheduler class>>idleProcess
10.0% {1861ms} DelayExperimentalSpinScheduler>>unschedule:
3.1% {581ms} DelayWaitTimeout>>wait
1.4% {257ms} WeakArray class>>finalizationProcess
1.0% {191ms} WeakSet>>scanFor:

**Memory**
old +16,777,216 bytes
young -17,303,480 bytes
used -526,264 bytes
free +17,303,480 bytes

**GCs**
full 1 totalling 247ms (1.0% uptime), avg 247.0ms
incr 127 totalling 199ms (1.0% uptime), avg 2.0ms
tenures 480,033 (avg 0 GCs/tenure)
root table 0 overflows


Thanks in advance,
Vitor

Reply via email to