| import errno | |
| import hotshot | |
| import hotshot.stats | |
| import sys | |
| import test.pystone | |
| def main(logfile): | |
| p = hotshot.Profile(logfile) | |
| benchtime, stones = p.runcall(test.pystone.pystones) | |
| p.close() | |
| print "Pystone(%s) time for %d passes = %g" % \ | |
| (test.pystone.__version__, test.pystone.LOOPS, benchtime) | |
| print "This machine benchmarks at %g pystones/second" % stones | |
| stats = hotshot.stats.load(logfile) | |
| stats.strip_dirs() | |
| stats.sort_stats('time', 'calls') | |
| try: | |
| stats.print_stats(20) | |
| except IOError, e: | |
| if e.errno != errno.EPIPE: | |
| raise | |
| if __name__ == '__main__': | |
| if sys.argv[1:]: | |
| main(sys.argv[1]) | |
| else: | |
| import tempfile | |
| main(tempfile.NamedTemporaryFile().name) |