diff options
| author | Munyoki Kilyungi | 2025-07-23 19:45:55 +0300 |
|---|---|---|
| committer | Pjotr Prins | 2026-01-05 11:12:10 +0100 |
| commit | 436dbfd0f7cbb682e5788bd2e2e43a36442e700f (patch) | |
| tree | fa757edd842a434ab42d668ef352c701e2409f00 /issues/CI-CD | |
| parent | 7eb4c97d2168d3913b9b4ee8e6dde2df97f9a3d3 (diff) | |
| download | gn-gemtext-436dbfd0f7cbb682e5788bd2e2e43a36442e700f.tar.gz | |
Add entry on profiling gn.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
Diffstat (limited to 'issues/CI-CD')
| -rw-r--r-- | issues/CI-CD/profiling-flask.gmi | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/issues/CI-CD/profiling-flask.gmi b/issues/CI-CD/profiling-flask.gmi new file mode 100644 index 0000000..2d0c539 --- /dev/null +++ b/issues/CI-CD/profiling-flask.gmi @@ -0,0 +1,33 @@ +# Profiling GN + +Use this simple structure: + +``` +from werkzeug.middleware.profiler import ProfilerMiddleware + + +app = Flask(__name__) +app.config["PROFILE"] = True +app.wsgi_app = ProfilerMiddleware( + app.wsgi_app, + restrictions=[40, "main"], + profile_dir="profiler_dump", + filename_format="{time:.0f}-{method}-{path}-{elapsed:.0f}ms.prof", +) +``` + + +You can use gprof2dot to visualise the profile + +``` +guix shell gprof2dot -- gprof2dot -f pstats 1753202013-GET-show_trait-37931ms.prof > 1753202013-GET-show_trait-37931ms.prof.dot +guix shell xdot -- xdot 1753202013-GET-show_trait-37931ms.prof.dot +``` + +Or snakeviz to visualize it: + + +``` +scp genenetwork:/home/bonfacem/profiling/1753202013-GET-show_trait-37931ms.prof /tmp/test +snakeviz 1753202013-GET-show_trait-37931ms.prof +``` |
