2013-08-30 2 views
0

this post을 사용하여 json 응답으로 ajax django보기를 프로파일 링했습니다. 다음은 가장 큰 시간의 흡혈자입니다 :예기치 않은 db 쿼리로 인해 긴 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') 

나는 데코레이터를 확인하고 @login_required 기본에만 장고 인증은 의심이다.
어떻게 디버깅 할 수 있습니까? 발행 된 쿼리는 어떻게 볼 수 있습니까?
auth가 db를 쿼리하더라도 이러한 응답 시간은 미약합니다. 무슨 일이 일어나는지 자세히 알아 보려면 어떻게 드릴까요?

+0

디버그 툴바가 정말 도움이됩니다. 지금까지 내가 기억하는 한, 장고는 사이트 프레임 워크와 인증 프레임 워크에 대한 모든 요청에서 데이터베이스 작업을 수행합니다. – Jingo

답변

1

설치 Django Debug Toolbar. 그리고 응답 시간과 SQL 쿼리 시간을 확인하십시오.

+0

[장고 디버그 툴바는 json ajax 요청을 지원하지 않습니다] (http://stackoverflow.com/a/5126825/348545) – Jonathan