mirror of
https://github.com/python/cpython.git
synced 2025-08-29 05:05:03 +00:00

There's one major and one minor category still unfixed: doctests are the major category (and I hope to be able to augment the refactoring tool to refactor bona fide doctests soon); other code generating print statements in strings is the minor category. (Oh, and I don't know if the compiler package works.)
31 lines
781 B
Python
31 lines
781 B
Python
import errno
|
|
import hotshot
|
|
import hotshot.stats
|
|
import os
|
|
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 as 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)
|