[Glass] Profiling beyond ExecBlock >> valueWithPossibleArguments: ?
Mariano Martinez Peck via Glass
glass at lists.gemtalksystems.com
Wed Feb 3 04:11:43 PST 2016
On Wed, Feb 3, 2016 at 9:08 AM, Mariano Martinez Peck <marianopeck at gmail.com
> wrote:
> Hi guys,
>
> In Quuve we have a huge "rule engine" in which user defined "rules" are
> evaluated over 10k companies or whatever in order to filter/screen the
> companies that meet certain conditions. The rules are the very end have a
> Smalltalk closure that gets evaluated.
>
> I am trying to profile some things and what happens is that I can never
> see what happens inside the "ExecBlock >> valueWithPossibleArguments:". All
> the profiling stops at this method. For example, say the ProfMonitor tells
> me that "ExecBlock >> valueWithPossibleArguments:" took 50% of the time,
> then the tree stops there. I have NO CLUE what took the time inside the
> closure.
>
> I do get the difference between profiling closures (different instances)
> vs profiling methods. And I also know that #valueWithPossibleArguments:
> ends up in a primitive. But still, there may exist a workaround.
>
> Just to illustrate the issue, try profiling this:
>
>
> | profMon |
> profMon := ProfMonitorTree new.
> profMon interval: 10.
> profMon startMonitoring.
>
> * [1000 timesRepeat: [Transcript show: 'hola']]
> valueWithPossibleArguments: #().*
>
> profMon
> stopMonitoring;
> gatherResults.
>
> (FileStream
> forceNewFileNamed:
> '/Users/mariano/gemstone'
> , DateAndTime now printString faAsFilename)
> nextPutAll: (profMon reportDownTo: 10);
> cr
>
> You will see that in the resulting file there is NOTHING about the, for
> example, #show: of the Transcript. The Transcript itself does not appear at
> all. All you see are lines like:
>
> 27.4 5.0 executed code
> 100.0% (1) executed code [UndefinedObject]
>
>
> Thanks for any idea,
>
>
>
BTW, I forgot to say that in Pharo, IT DOES WORK in the sense I get
profiling of the closure (#show: , #nextPutAll: etc). Just try:
TimeProfiler spyOn: [
[10000 timesRepeat: [Transcript show: 'hola']] valueWithPossibleArguments:
#().
]
--
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20160203/385bdd86/attachment-0001.html>
More information about the Glass
mailing list