[Python-Dev] Profiling of generators broken

Guido van Rossum guido@python.org
Tue, 04 Sep 2001 14:28:46 -0400


> Here's a simple test:
> 
>     from __future__ import generators
> 
>     def test():
>         yield 1
>         yield 2
> 
>     import profile
>     profile.run("list(test())")
> 
> It looks like the profile module is getting confused by functions that
> get called once but return multiple times.  My proposed solution is to
> modify ceval.c so that call_trace(..., PyTrace_CALL, ...) is called
> when a generator is resumed rather then when it is created.  Sound
> reasonable?

Yes.  (Caveat: I haven't looked at the code.)

--Guido van Rossum (home page: http://www.python.org/~guido/)