- Author:
- roppert
- Posted:
- February 9, 2009
- Language:
- Python
- Version:
- 1.0
- Tags:
- middleware profile debug
- Score:
- 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.
Usage:
-
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
- Serialize a model instance by chriswedgwood 1 week, 6 days ago
- Automatically setup raw_id_fields ForeignKey & OneToOneField by agusmakmun 9 months, 2 weeks ago
- Crispy Form by sourabhsinha396 10 months, 1 week ago
- ReadOnlySelect by mkoistinen 10 months, 2 weeks ago
- Verify events sent to your webhook endpoints by santos22 11 months, 2 weeks ago
Comments
Please login first before commenting.