Profiling
Contents
Profiling#
Profiling of requests by the pyramid debug toolbar can be a little restrictive when a specific url needs thin profiling that includes the whole pyramid dispatch.
Pyramid CubicWeb provides facilities to profile requests as a
wsgi middleware
, and a few
views that facilitate profiling of basic features.
The views and the wsgi middleware are activated when the âprofileâ option is
given. This can be done on the command line
(cubicweb-ctl pyramid --profile
) or in the Pyramid Settings file.
Views#
The following routes and corresponding views are provided when profiling is on:
/_profile/ping
: Reply âpingâ without doing anything else. See alsocubicweb.pyramid.profile.ping()
./_profile/cnx
: Reply âpingâ after getting a cnx. See alsocubicweb.pyramid.profile.cnx()
.
Typical Usage#
Letâs say we want to measure the cost of having a cnx
.
Start the application with profile enabled:
$ cubicweb-ctl pyramid --no-daemon --profile --profile-dump-every 100
Use âabâ or any other http benchmark tool to throw a lot of requests:
$ ab -c 1 -n 100 http://localhost:8080/_profile/cnx
Analyse the results. I personnaly fancy SnakeViz:
$ snakeviz program.prof