1
1
mirror of https://github.com/rsms/inter.git synced 2024-12-13 12:14:53 +03:00
inter/misc/tools/fmtprofile.py

25 lines
878 B
Python
Executable File

#!/usr/bin/env python
# encoding: utf8
#
# Formats a Python profile dump from for example `fontbuild --profile=file ...`
#
import argparse, pstats
from pstats import SortKey
def main():
argparser = argparse.ArgumentParser(description='Formats a Python profile dump')
argparser.add_argument('infile', metavar='<file>', type=str, help='Python pstats file')
argparser.add_argument('-n', '--limit', metavar='N', default=None, type=int,
help='Only print the top N entries')
argparser.add_argument('--sort', metavar='<key>', default=['time'], nargs='+', type=str,
help='Sort by keys (default is time.) Available keys: ' + ', '.join(SortKey))
args = argparser.parse_args()
p = pstats.Stats(args.infile)
p.strip_dirs()
p.sort_stats(SortKey(*args.sort))
p.print_stats(args.limit)
if __name__ == '__main__':
main()