Profiling python 2.3

Kenneth Johansson ken at switchboard.ericsson.se
Thu Jan 27 17:14:15 EST 2005


I wonder what would be a good way to profile a python program where the 
main thread starts two worker threads that do all the work.

I get no infomation at all from the threads.

I tried to use profile.run as the first thing in the new thread and the 
thread starts and works fine but when it exits I get this error

   File "/usr/lib/python2.3/profile.py", line 71, in run
     prof = prof.run(statement)
   File "/usr/lib/python2.3/profile.py", line 403, in run
     return self.runctx(cmd, dict, dict)
   File "/usr/lib/python2.3/profile.py", line 409, in runctx
     exec cmd in globals, locals
TypeError: exec: arg 1 must be a string, file, or code object



The main problem I have is that when I add a small function to a program 
  the resulting code takes longer than it should. The program takes 
about 80% normally and end up taking more than 100%. I did a small test 
of the new funtions and when I run that alone it only takes 20%-25% so 
the result sould not take more than 50% and now I need to know where the 
time is spent.



More information about the Python-list mailing list