summary refs log tree commit diff
path: root/issues/CI-CD
diff options
context:
space:
mode:
authorMunyoki Kilyungi2025-07-23 19:45:55 +0300
committerPjotr Prins2026-01-05 11:12:10 +0100
commit436dbfd0f7cbb682e5788bd2e2e43a36442e700f (patch)
treefa757edd842a434ab42d668ef352c701e2409f00 /issues/CI-CD
parent7eb4c97d2168d3913b9b4ee8e6dde2df97f9a3d3 (diff)
downloadgn-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.gmi33
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
+```