Fred Drake | 0d7e68a | 2002-07-18 19:47:05 +0000 | [diff] [blame] | 1 | import errno |
| 2 | import hotshot |
| 3 | import hotshot.stats |
Fred Drake | 0d7e68a | 2002-07-18 19:47:05 +0000 | [diff] [blame] | 4 | import sys |
| 5 | import test.pystone |
| 6 | |
Ka-Ping Yee | e9638cc | 2003-03-28 16:28:48 +0000 | [diff] [blame] | 7 | def main(logfile): |
| 8 | p = hotshot.Profile(logfile) |
| 9 | benchtime, stones = p.runcall(test.pystone.pystones) |
| 10 | p.close() |
Fred Drake | 0d7e68a | 2002-07-18 19:47:05 +0000 | [diff] [blame] | 11 | |
Ka-Ping Yee | e9638cc | 2003-03-28 16:28:48 +0000 | [diff] [blame] | 12 | print "Pystone(%s) time for %d passes = %g" % \ |
| 13 | (test.pystone.__version__, test.pystone.LOOPS, benchtime) |
| 14 | print "This machine benchmarks at %g pystones/second" % stones |
Fred Drake | 0d7e68a | 2002-07-18 19:47:05 +0000 | [diff] [blame] | 15 | |
Ka-Ping Yee | e9638cc | 2003-03-28 16:28:48 +0000 | [diff] [blame] | 16 | stats = hotshot.stats.load(logfile) |
| 17 | stats.strip_dirs() |
| 18 | stats.sort_stats('time', 'calls') |
| 19 | try: |
| 20 | stats.print_stats(20) |
| 21 | except IOError, e: |
| 22 | if e.errno != errno.EPIPE: |
| 23 | raise |
Fred Drake | 0d7e68a | 2002-07-18 19:47:05 +0000 | [diff] [blame] | 24 | |
Ka-Ping Yee | e9638cc | 2003-03-28 16:28:48 +0000 | [diff] [blame] | 25 | if __name__ == '__main__': |
| 26 | if sys.argv[1:]: |
| 27 | main(sys.argv[1]) |
| 28 | else: |
| 29 | import tempfile |
| 30 | main(tempfile.NamedTemporaryFile().name) |