Extracting results from a large hotshot profile
brianc at temple.edu
Mon Jan 16 12:51:38 EST 2006
Tried replacing sys.getrecursionlimit() with 40,000. Choked with the
same error, just took longer to get there.
It looks like depth is not reset to zero after the yield:
if (not i%yieldCount) and i:
yield i, files, functions
Should it be?
On 1/16/06, Mike C. Fletcher <mcfletch at vrplumber.com> wrote:
> Brian Cole wrote:
> >Thanks for the tip. I got the following error message when trying to
> >run your profiler.
> > File "c:\Documents and Settings\coleb2\My Documents\software\Python24\Lib\site
> >-packages\runsnakerun\hotshotreader.py", line 95, in loadHotshot
> > localDeltas[depth] = 0
> >IndexError: index out of bounds
> >As the traceback shows I'm running this on Windows. I'm gonna go
> >wrestle with installing wxPython and Numeric on my Linux box and see
> >if that makes a difference.
> Not likely. The hotshotreader module is creating an array of
> sys.getrecursionlimit() long integers to store the accumulated local
> times. It does the same to track the number of frames. Most likely
> your main program is setting sys.getrecursionlimit explicitly and as a
> result it winds up with a larger possible stack. You can try replacing
> the sys.getrecursionlimit() calls with some big number (say 40,000, or
> just multiply the recursion limit by 10 or 20 if you like) and see if
> that solves the problem. Probably should allow for setting the value on
> the command-line I guess. I suppose there may also be cases where a
> recursive call to the interpreter gets a whole separate stack... or
> maybe there's something going on with threads intermixing to create
> greater depth.
> Let me know if that helps,
> Mike C. Fletcher
> Designer, VR Plumber, Coder
More information about the Python-list