[Glass] Profiling beyond ExecBlock >> valueWithPossibleArguments: ?
Mariano Martinez Peck via Glass
glass at lists.gemtalksystems.com
Wed Feb 3 04:08:06 PST 2016
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,
--
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20160203/0c765408/attachment.html>
More information about the Glass
mailing list