> I didn't profile a real case yet, so I cannot say how useful it is  
> for me in real life.

I would be glad to hear real life experiment.

> It seems that you can quickly identify slow and often called methods  
> (is the latter really important because if the method is often  
> called but very fast, that's ok?!).

This is the very idea.

> On the other hand, what I miss compared to message tally is to  
> directly see the call relationship of methods. With your second view  
> you compensate for that a bit, but with the hover tooltips, it can  
> be cumbersome to understand a call graph.

What would be the solution? Moving the tooltip next to the all graph?

> BTW, to open a class you have the O2 browser hardcoded, which did  
> not work in my image because it was not loaded. I suggest to instead  
> use "ToolSet browse: ... selector: ..." instead.

thanks, I fix this in Spy-Alexandre_Bergel.77.

Cheers,
Alexandre

>
>
> On Jan 20, 2010, at 20:20 , Alexandre Bergel wrote:
>
>> Each implementor of #ensureMetacello is different. Even the one of
>> ConfigurationOfMetacello is different from the one of the website :-)
>>
>> I update ConfigurationOfSpy. It loads now without any problem.
>>
>> Cheers,
>> Alexandre
>>
>>
>> On 20 Jan 2010, at 09:16, Mariano Martinez Peck wrote:
>>
>>> The problem is in ConfigurationOfSpy class >> ensureMetacello
>>>
>>> That method is wrong (it is old). You have to updated to something
>>> like this:
>>>
>>> http://code.google.com/p/metacello/wiki/EnsureMetacello
>>>
>>> Cheers
>>>
>>> MAriano
>>>
>>> On Wed, Jan 20, 2010 at 12:11 PM, Adrian Lienhard <a...@netstyle.ch>
>>> wrote:
>>> I also got the warnings and an error in the end.
>>>
>>> Adrian
>>>
>>> On Jan 20, 2010, at 12:06 , Alexandre Bergel wrote:
>>>
>>>> Strange, I tried in a 10505 and I got no warning. I will try later
>>>> today.
>>>>
>>>> Alexandre
>>>>
>>>>
>>>>> I tried it in a PharoCore 1.0 10506 and I get a lot of deprecation
>>>>> warnings for gofer addPackage:, addVersion:
>>>>>
>>>>> The method Gofer addVersion: has been deprecated.
>>>>> Instead of #addVersion: simply use #version:
>>>>>
>>>>> Select Proceed to continue, or close this window to cancel the
>>>>> operation.
>>>>>
>>>>> I pressed proceed and then I got:
>>>>>
>>>>>
>>>>> MetacelloGoferPackage(Object)>>doesNotUnderstand: #setName.
>>>>>
>>>>> Is this for 1.0, what version?
>>>>>
>>>>> Cheers
>>>>>>
>>>>>> To invoke the profiler, use the following template:
>>>>>> ProfilingPackageSpy viewProfiling: [ "YOUR CODE" ]  inPackage:
>>>>>> 'YourPackageName'
>>>>>> ProfilingPackageSpy viewProfiling: [ "YOUR CODE" ]
>>>>>> inPackagesMatching: 'PackageName*'
>>>>>>
>>>>>> Replace "YOUR CODE" by an expression. Some examples are provided
>>> in
>>>>>> the class ProfilingPackageSpy (method category 'example'). You  
>>>>>> can
>>>>>> find profilings of Mondrian, Glamour, Moose/CAnalyzer, O2.
>>>>>> The profiling of Mondrian looks like this:
>>>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>>> ProfilingPackageSpy
>>>>>>           viewProfiling: [
>>>>>>                   | view |
>>>>>>                   view := MOViewRenderer new.
>>>>>>                   view nodes: (1 to: 100) forEach: [:each |
>>> view nodes: (1 to:
>>>>>> 100)].
>>>>>>                   view root applyLayout
>>>>>>           ]
>>>>>>           inPackage: 'Mondrian'
>>>>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>>>>
>>>>>> There are two things you should keep in mind:
>>>>>> - "YOUR CODE" will be executed twice. The first time with message
>>>>>> Tally, then the second time with the full instrumentation. The
>>> second
>>>>>> execution should not be impacted by the first execution.
>>>>>> - You cannot instrument the whole image. I need more time to make
>>>>>> this
>>>>>> happens. Therefore, you cannot provide '*' to inPackagesMatching:
>>>>>>
>>>>>> How to read the picture:
>>>>>> - big rectangle are classes
>>>>>> - edges represent class inheritance
>>>>>> - inner rectangles are methods:
>>>>>>  * height = total time that the method has been executed
>>>>>>  * width = number of time the method has been executed
>>>>>>  * color = number of different receiver: white = the method has
>>>>>> been executed on 1 receiver. black = many receivers
>>>>>>
>>>>>> You can do a right-click on a method, and select viewInvocation.
>>> This
>>>>>> opens a second view that show the execution flow. A different
>>> mapping
>>>>>> of metrics is used:
>>>>>> - rectangle = methods
>>>>>> - edges = invocation (upper invokes below)
>>>>>> - gray color = method that always return 'self'. It corresponds
>>> to
>>>>>> void methods in Java or C++. It is therefore likely that the
>>> method
>>>>>> performs a side effect
>>>>>> - yellow color = method that always returns the same value for a
>>>>>> particular object
>>>>>> - width and height are as in the first visualization
>>>>>>
>>>>>> Keep in mind that you mind encounter a freeze of your image if  
>>>>>> you
>>>>>> instrument sensitive methods.
>>>>>>
>>>>>> I would be sincerely delighted to have experience report on this.
>>>>>>
>>>>>> Regards,
>>>>>> Alexandre
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Miguel Cobá
>>>>> http://miguel.leugim.com.mx
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> Pharo-project@lists.gforge.inria.fr
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- 
>>>>> project
>>>>
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel  http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> Pharo-project@lists.gforge.inria.fr
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project@lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project@lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> -- 
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project@lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to