调试由于意外的数据库查询导致的长django响应时间

时间:2013-08-30 17:28:17

标签: django profiling django-views response-time

我使用this post使用json响应来分析ajax django视图。以下是迄今为止最大的吸盘时间:

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    1.502    1.502    1.502    1.502 c:\python27\lib\socket.py:336(read)
        1    1.501    1.501    1.501    1.501 c:\users\jonathan\virtual_environments\myapp\lib\site-packages\psycopg2\__init__.py:119(connect)
        2    0.749    0.375    0.749    0.375 c:\users\jonathan\virtual_environments\myapp\lib\site-packages\django\db\backends\postgresql_psycopg2\base.py:50(execute)
        1    0.245    0.245    0.245    0.245 c:\python27\lib\socket.py:406(readline)
        2    0.240    0.120    1.741    0.871 c:\users\jonathan\virtual_environments\myapp\lib\site-packages\django\db\backends\postgresql_psycopg2\base.py:157(_cursor)
嘿,那是什么?!? postgresql数据库访问?但是视图代码甚至不访问数据库!

@login_required
@debug_ajax
@json_error_on_exception
def my_ajax_view(request):
    json_response = redis_conn.get('precompiled-json-response')
    return HttpResponse(json_response, mimetype='application/json')

我检查了装饰者,只有django auth native @login_required是可疑的 我该怎么调试呢?如何查看发出的查询? 即使auth确实查询了db,这些响应时间也是疯狂的。我怎样才能进一步深入了解是什么?

1 个答案:

答案 0 :(得分:1)

安装Django Debug Toolbar。并查看响应时间和SQL查询时间。