[Glass] A couple of questions about "new" features of ProfMonitor

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Mon May 29 06:21:30 PDT 2017


On Mon, May 29, 2017 at 10:11 AM, Mariano Martinez Peck <
marianopeck at gmail.com> wrote:

> Hi guys,
>
> I am trying to improve my profiling code to use some features which I have
> pointed out to be new (at least some of them). But I have some questions
> about it.
>
> 1) ProfMonitor >> setOptions:  is confusing to me. Mostly, it's code
> comment vs what I see in the results. The comment says:
>
> *"anArray is an Array of Strings or Symbols containing*
> *     at most one of #objFaults #pageFaults #edenUsage #gcTime
> #objCreation*
> *  and optionally  #cpu or #real .*
> *     The last #cpu or #real if any specifies real or cpu time sampling.*
> *     #gcTime implies default #cpu  and is in units of milliseconds  .*
> *     #objFaults and #pageFaults are in units of faults and imply default
> #real .*
> *     #edenUsage  is in units of bytes and implies default #real .*
> *     #objCreation implies default #cpu .*
> *  "*
>
> Note that the word "implies" is used many times there. It says gcTime
> implies #real and that #objFaults and #pageFaults implies #real.  Then it
> says #gcTime implies #cpu.
>
> The result of my profile shows:
>
> STATISTICAL SAMPLING RESULTS
> elapsed CPU time:    438 ms
> monitoring interval:  100.0 us
> 0 pageFaults  817 objFaults  0 gcMs  2518808 edenBytesUsed
>
> So.... I am getting both from #real (page faults, object faults, eden
> usage, etc)  and from #cpu (gc time). I am confused here. Any clarification
> ?
>
> 2) Is there a way to get the results/stats/printString of only the
> "STATISTICAL SAMPLING RESULTS" part pasted above?  I mean, I tried
> accessing #results etc but I find no easy way to get access to those
> results (a result of each of the specified option via #setOptions:) or to
> that printString (rather than the whole #reportDownTo: with all the tree
> etc).
>
>

Sorry, and I have a 3) question.... and it's why #objCreation does not seem
to work?

| realTimeProf realTimeProfResults |
realTimeProf := ProfMonitor new.
realTimeProf monitorBlock: [ 10 timesRepeat: [Transcript show: 'buuh'] ].
realTimeProf  setOptions: #(    #objCreation #cpu ).
realTimeProfResults := realTimeProf reportDownTo: 0.03.
realTimeProf removeResults.
realTimeProfResults inspect.

If you inspect the results of that, I see nothing in the status summary
mentioning the objects creation:

*================*
*STATISTICAL SAMPLING RESULTS*
*elapsed CPU time:    21 ms*
*monitoring interval:  1.0 ms*
*0 pageFaults  2 objFaults  0 gcMs  171368 edenBytesUsed*


Any idea?

BTW, I am with 3.3.3 under CentOS 7.




-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20170529/1d6f7691/attachment.html>


More information about the Glass mailing list