- February 9, 2009
- middleware profile debug
- 2 (after 2 ratings)
Simple debug middleware that uses pycallgraph to get a visual representation of the call graph, including number of calls and execution times.
Replace myapp in the snippet with the name of your application and or adjust include and exclude according to your needs
Add CallgraphMiddleware to your middlewares in settings.py
Append ?prof to any URL in your application to trigger the callgraph creation
Each callgraph cerated will be named callgraph-timestamp.png. This is because multiple callgraphs will be created when a re-direction occurs for example.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
import time import pycallgraph from django.conf import settings class CallgraphMiddleware(object): def process_view(self, request, callback, callback_args, callback_kwargs): if settings.DEBUG and 'graph' in request.GET: filter_func = pycallgraph.GlobbingFilter(include=['myapp.*'], exclude=['myapp.debug.*']) pycallgraph.start_trace(filter_func=filter_func) def process_response(self, request, response): if settings.DEBUG and 'graph' in request.GET: pycallgraph.make_dot_graph('callgraph-' + str(time.time()) + '.png') return response
More like this
- Automatically setup raw_id_fields ForeignKey & OneToOneField by agusmakmun 5 months, 1 week ago
- Crispy Form by sourabhsinha396 6 months ago
- ReadOnlySelect by mkoistinen 6 months, 2 weeks ago
- Verify events sent to your webhook endpoints by santos22 7 months, 2 weeks ago
- Django Language Middleware by agusmakmun 7 months, 3 weeks ago