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 <john...@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 > _______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project