mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			767 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			767 B
		
	
	
	
		
			Python
		
	
	
	
	
	
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)
 |