| import pstats | |
| import sys | |
| from _prof_imports import IS_PY3K | |
| from _prof_imports import ProfilerResponse | |
| from _prof_imports import TBinaryProtocolFactory | |
| from _prof_imports import serialize | |
| from prof_util import stats_to_response | |
| if __name__ == '__main__': | |
| filename = sys.argv[1] | |
| m = ProfilerResponse(id=0) | |
| if filename.endswith('.prof'): | |
| import vmprof_profiler | |
| vmprof_profiler.tree_stats_to_response(filename, m) | |
| else: | |
| stats = pstats.Stats(filename) | |
| stats_to_response(stats.stats, m) | |
| data = serialize(m, TBinaryProtocolFactory()) | |
| # setup stdout to write binary data to it | |
| if IS_PY3K: | |
| out = sys.stdout.buffer | |
| elif sys.platform == 'win32': | |
| import os, msvcrt | |
| msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) | |
| out = sys.stdout | |
| else: | |
| out = sys.stdout | |
| out.write(data) | |
| out.flush() | |