qutebrowser/scripts/run_profile.py
2014-06-04 14:50:06 +02:00

34 lines
835 B
Python
Executable File

"""Profile qutebrowser."""
import sys
import cProfile
import os.path
from os import getcwd
from tempfile import mkdtemp
from subprocess import call
from shutil import rmtree
sys.path.insert(0, getcwd())
import qutebrowser.qutebrowser # pylint: disable=unused-import
tempdir = mkdtemp()
if '--profile-keep' in sys.argv:
sys.argv.remove('--profile-keep')
profilefile = os.path.join(getcwd(), 'profile')
else:
profilefile = os.path.join(tempdir, 'profile')
if '--profile-noconv' in sys.argv:
sys.argv.remove('--profile-noconv')
noconv = True
callgraphfile = os.path.join(tempdir, 'callgraph')
profiler = cProfile.Profile()
profiler.run('qutebrowser.qutebrowser.main()')
profiler.dump_stats(profilefile)
if not noconv:
call(['pyprof2calltree', '-k', '-i', profilefile, '-o', callgraphfile])
rmtree(tempdir)