On Tue, 2 Mar 2010, Alexandre Bergel wrote:
Well it seems rather special purpose. What are you using it for? Why is the cost impacting your work?
There is an excellent paper at oopsla'09 that shows the method call graph can be effectively inferred using the method call stack depth: http://www-plan.cs.colorado.edu/klipto/mytkowicz-oopsla09.pdf
Executing "[ running sender notNil ] whileTrue: [ running := running sender. depth := depth + 1]" before each method execution of my application terribly slows it down.
This is more than twice as fast, though it may be still too slow for your needs: | depth running | running := thisContext. depth := 1. [ (running := running instVarAt: 1) == nil ] whileFalse: [ depth := depth + 1 ]. depth Levente
Cheers, Alexandre
On 2010-03-02, at 4:06 PM, Alexandre Bergel wrote:
Will it be of any use for you? If yes, then I will do it.
Alexandre
On 2 Mar 2010, at 21:00, John M McIntosh wrote:
Maybe you could write a plugin/primitive to do the work?
On 2010-03-02, at 3:50 PM, Alexandre Bergel wrote:
Dear List,
I was wondering whether there is a fast way to know the method call stack depth. Something like what follows does the job:
-=-=-=-=-=-=-=-=-=-=-=-= | depth running | depth := 0. running := thisContext. [ running sender notNil ] whileTrue: [ running := running sender. depth := depth + 1]. depth -=-=-=-=-=-=-=-=-=-=-=-=
But it is rather slow. Anyone has a suggestion?
Cheers, Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
-- = = = = = ====================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http:// www.smalltalkconsulting.com = = = = = ======================================================================
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: 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