Also, I could not test with a cleaned image since this procedure doesn't
seems to be working.... I get errors in a UI pharo or it goes forever in
the headless mode.

On Sat, Sep 10, 2016 at 12:30 PM, Vitor Medina Cruz <vitormc...@gmail.com>
wrote:

> Ok, my mistake was not take in account that DO has a MUCH faster link than
> the the one I have at home... :/ Those ten I/O calls traffics more than
> 5Mb, so you are right Sven :)
>
> Ben: I tried to change the Delay Scheduler, but the problem is that there
> is actually too much I/O wait.There was also no difference between running
> on Windows or Linux platform.
>
>
>
> On Thu, Sep 8, 2016 at 2:48 PM, Vitor Medina Cruz <vitormc...@gmail.com>
> wrote:
>
>> Why not ? You are doing (lot's of) network I/O. It is normal that your
>>> image code has to wait from time to time for data to come in from the
>>> network. By definition that is slow (in CPU terms). The Digital Ocean
>>> instance is probably faster in that respect.
>>>
>>
>> But only the wait time corresponds to 73% (~13 seconds in no CPU time) of
>> the entire procedure, which is taking ~18 seconds total. In the remote
>> server the same procedure takes only ~6 seconds, supposing it still takes
>> 73% in waiting it would give us ~4 seconds in wait time. I think 4 seconds
>> to 13 seconds of difference for wait time is too much, it is not? The
>> maximum I/O calls I am doing is ten. It is like it takes more than one
>> second waiting for response, which does not seems right. I will do
>> additional tests.
>>
>>
>>> Also, having the IDE UI with lot's of tools open might influence things.
>>> Best do some more experiments. But benchmarking is very tricky.
>>
>>
>> Yes, I will try doing different stuff here!
>>
>> Thanks!
>> Vitor
>>
>>
>> On Thu, Sep 8, 2016 at 9:09 AM, Sven Van Caekenberghe <s...@stfx.eu>
>> wrote:
>>
>>>
>>> > On 08 Sep 2016, at 14:01, Vitor Medina Cruz <vitormc...@gmail.com>
>>> wrote:
>>> >
>>> > Thanks for the answers!
>>> >
>>> > If this is time spent on I/O it is really strange. I am consuming the
>>> Twitter API and it don't get so much time like this to get a response.
>>> Besides, while those profiles were made at a Windows 10 local machine, the
>>> same code on a Pharo 5 (get.pharo.org) deployed on a linux deploy on
>>> Digital Ocean takes ~6 seconds, which means that a lot less time is spent
>>> on I/O. Isn't that Strange? I will try to spin up a local linux machine
>>> with both a headfull and headless Pharo to see if this time changes.
>>> >
>>> > Is there a way to profile a remote image? I would like to see what is
>>> happening in the Digital Ocean deploy. Maybe put the headless Pharo there
>>> in profiling mode?
>>> >
>>> > Ben: this is a heavy json parser procedure, I would expect to NeoJson
>>> to take some time. Perhaps there is a way to optimize this, but what catch
>>> my attention was the huge amount of time spent on the idleProcess. Been
>>> that I/O wait, it shouldn't be like this.
>>>
>>> Why not ? You are doing (lot's of) network I/O. It is normal that your
>>> image code has to wait from time to time for data to come in from the
>>> network. By definition that is slow (in CPU terms). The Digital Ocean
>>> instance is probably faster in that respect.
>>>
>>> Also, having the IDE UI with lot's of tools open might influence things.
>>> Best do some more experiments. But benchmarking is very tricky.
>>>
>>> > Thanks,
>>> > Vitor
>>> >
>>> > On Thu, Sep 8, 2016 at 4:42 AM, Clément Bera <bera.clem...@gmail.com>
>>> wrote:
>>> >
>>> >
>>> > On Thu, Sep 8, 2016 at 3:44 AM, Vitor Medina Cruz <
>>> vitormc...@gmail.com> wrote:
>>> > 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 VM is not event-driven. Hence when all the processes are suspended
>>> or terminated, the VM falls back to the idle process. The idle process
>>> waits for 1ms, checks if any event has occurred and/or if a process can
>>> restart, and if not waits for 1 more ms to check again. That's kind of dumb
>>> but it works and we need both time and funds to make the VM event-driven
>>> (in the latter case the VM restarts directly when an event happens, instead
>>> of checking at the next ms).
>>> >
>>> > Basically the idle process profiled time is the time where Pharo has
>>> nothing to do because all processes are terminated or suspended. You can
>>> say that it is the time spent in I/O operations + the time before Pharo
>>> notices the I/O operation is terminated, which can be up to 1ms.
>>> >
>>> >
>>> >
>>> > The full report is:
>>> >
>>> >  - 18407 tallies, 18605 msec.
>>> >
>>> > **Tree**
>>> > --------------------------------
>>> > Process: (40s) Morphic UI Process: nil
>>> > --------------------------------
>>> > 25.1% {4663ms} UndefinedObject>>DoIt
>>> >   25.1% {4663ms} TweetsServiceRestConsumer(Twee
>>> tsService)>>hashesTop:usingLastTweetsUpTo:fromHandler:
>>> >     25.0% {4656ms} TweetsServiceRestConsumer>>fet
>>> chLastTweetsUpTo:fromHandler:
>>> >       14.3% {2653ms} OAuthProvider>>httpGet:
>>> >         |14.3% {2653ms} ZnOAuth1Service>>httpGet:using:
>>> >         |  14.3% {2653ms} ZnOAuth1Service>>executeRequest:token:
>>> >         |    14.3% {2653ms} ZnOAuth1Service>>executeReques
>>> t: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(DynamicVariab
>>> le)>>value:during:
>>> >         |              14.2% {2646ms} BlockClosure>>ensure:
>>> >         |                14.2% {2646ms} ZnSignalProgress(DynamicVariab
>>> le)>>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:starti
>>> ngAt:count:fromStream:
>>> >         |
>>>                       13.7% {2550ms} ZnUTF8Encoder>>optimizedReadIn
>>> to:startingAt:count:fromStream:
>>> >         |
>>>                         13.7% {2550ms} ZnLimitedReadStream>>readInto:
>>> startingAt:count:
>>> >         |
>>>                           13.7% {2547ms} ZdcSecureSocketStream(ZdcOptim
>>> izedSocketStream)>>readInto:startingAt:count:
>>> >         |
>>>                             13.7% {2547ms} ZdcSecureSocketStream(ZdcSimpl
>>> eSocketStream)>>fillReadBuffer
>>> >         |
>>>                               9.0% {1669ms} ZdcSecureSocketStream(ZdcSimpl
>>> eSocketStream)>>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(ZdcSimpl
>>> eSocketStream)>>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>>parseListElemen
>>> tsDo:
>>> >                           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>>parseMapKeysAnd
>>> ValuesDo:
>>> >                                         |              |
>>>                               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