Edit this page | Blame

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
(made with skribilo)