[Python-Dev] proposal+patch: sys.gettickeraccumulation()
Nick Coghlan
ncoghlan at gmail.com
Mon Nov 15 11:44:15 CET 2004
Ralf W. Grosse-Kunstleve wrote:
>>Knowing "I'm spending x% of the time executing Python code" just isn't
>>really all that interesting,
>
>
> Right. Sorry if I gave the wrong impression that this could be
> interesting. It is indeed not. What is interesting is the estimated
> benefit of reimplementing a piece of Python in C/C++. This is in
> fact highly correlated with the time/tick.
Ah, OK, I think I better understand what you're trying to achieve now.
Does knowing that the 2.4 profiler splits out C invocations from the
calling Python methods make a difference here?
The 2.4 profiler is the only one I've made heavy use of - I'd forgotten
that the 2.3 profiler didn't split out the C functions.
I've also discovered that the profiler documentation in Python 2.4 still
describes the old behaviour (i.e. C-code time getting charged to the
calling Python function). (I'll put a bug report on SF for that one)
I've got some sample output comparing the 2.3 and 2.4 profilers below.
The interesting lines in the 2.4 output are the ones without a filename
- those are the C functions.
Cheers,
Nick.
Python 2.3 profiler:
==================
$ python /usr/lib/python2.3/profile.py /usr/lib/python2.3/profile.py
usage: profile.py scriptfile [arg] ...
6 function calls in 0.031 CPU seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.015 0.015 0.015 0.015 <string>:1(?)
1 0.000 0.000 0.000 0.000 profile.py:10(?)
1 0.000 0.000 0.000 0.000 profile.py:103(Profile)
1 0.000 0.000 0.000 0.000 profile.py:334(fake_code)
1 0.000 0.000 0.000 0.000 profile.py:344(fake_frame)
1 0.016 0.016 0.031 0.031
profile:0(execfile('/usr/lib/pytho
n2.3/profile.py'))
0 0.000 0.000 profile:0(profiler)
==================
And with Python 2.4:
==================
$ ./python -m profile -s time /usr/lib/python2.3/profile.py
usage: profile.py scriptfile [arg] ...
10 function calls in 0.048 CPU seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.032 0.032 0.032 0.032 :0(setprofile)
1 0.016 0.016 0.016 0.016 :0(execfile)
1 0.000 0.000 0.000 0.000 profile.py:334(fake_code)
1 0.000 0.000 0.000 0.000 :0(exit)
1 0.000 0.000 0.000 0.000 profile.py:10(?)
1 0.000 0.000 0.000 0.000 profile.py:344(fake_frame)
1 0.000 0.000 0.000 0.000 :0(hasattr)
1 0.000 0.000 0.000 0.000 profile.py:103(Profile)
1 0.000 0.000 0.048 0.048
profile:0(execfile('/usr/lib/pytho
n2.3/profile.py'))
1 0.000 0.000 0.048 0.048 <string>:1(?)
0 0.000 0.000 profile:0(profiler)
==================
--
Nick Coghlan | Brisbane, Australia
Email: ncoghlan at email.com | Mobile: +61 409 573 268
More information about the Python-Dev
mailing list