
I'm interested in some dynamic execution counts (sys.getdxp). I have a Python executable built with that. The recommended way to capture execution profiles is to run the desired program with -i and use that to grab and write the opcode profile.
That would be quite cumbersome when using pyperformance since each benchmark is run as a separate Python process and there are so many benchmarks.
I bit the bullet and set PYINTROSPECT=true, then pasted this little snippet of code at each introspection prompt:
import pickle import sys COUNTFILE = "/tmp/dxp-profile.pck" try: counts = pickle.load(open(COUNTFILE, "rb")) except IOError: counts = sys.getdxp() else: new_counts = sys.getdxp() counts = [sum(pair) for pair in zip(counts, new_counts)] pickle.dump(counts, open(COUNTFILE, "wb")) raise SystemExit
then went about my business, typing Shift-Ctrl-v whenever I noticed the REPL prompt. Since I shouldn't have to do this on a regular basis, that's good enough for now. Still seems like it might be nice to be able to execute a snippet of code automagically after the end of each benchmark, perhaps by taking advantage of Python's -i flag.
Skip