| 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) |