From 578b60c104178c17c451df466ae2b98962b0ef2b Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 16 May 2020 12:53:01 +1000 Subject: [PATCH] save profile stats to file instead of generating report Can use an external tool like snakeviz to query them after a run. --- .gitignore | 1 + qt/aqt/__init__.py | 14 ++++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 7e4935ee6..33831ac2e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ dist pyenv .mypy_cache __pycache__ +anki.prof diff --git a/qt/aqt/__init__.py b/qt/aqt/__init__.py index fe0d2633d..279c2a129 100644 --- a/qt/aqt/__init__.py +++ b/qt/aqt/__init__.py @@ -351,16 +351,10 @@ def setupGL(pm): PROFILE_CODE = os.environ.get("ANKI_PROFILE_CODE") -def print_profile_results(): - import io - import pstats - +def write_profile_results(): profiler.disable() - outputstream = io.StringIO() - profiler_status = pstats.Stats(profiler, stream=outputstream) - profiler_status.sort_stats("time") - profiler_status.print_stats() - sys.stderr.write(f"\n{outputstream.getvalue()}\n") + profiler.dump_stats("anki.prof") + print("profile stats written to anki.prof") def run(): @@ -516,4 +510,4 @@ environment points to a valid, writable folder.""", return app if PROFILE_CODE: - print_profile_results() + write_profile_results()