我試圖追查一下Django的一些性能問題。從點擊刷新到瀏覽器得到響應時,似乎有600-800毫秒的延遲。Django的性能問題
我建立一個簡單的視圖和輪廓中間件,這是視圖和結果:
視圖函數:
def test(request):
return HttpResponse("It works")
輪廓結果(我用http://www.djangosnippets.org/snippets/186/):
9 function calls in 0.000 CPU seconds
Ordered by: internal time, call count
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/http/__init__.py:487(__init__)
1 0.000 0.000 0.000 0.000 /home/mysite/mysite/mysite/map/views.py:19(test)
1 0.000 0.000 0.000 0.000 /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/http/__init__.py:532(__setitem__)
3 0.000 0.000 0.000 0.000 /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/http/__init__.py:517(_convert_to_ascii)
2 0.000 0.000 0.000 0.000 /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/utils/functional.py:274(__getattr__)
1 0.000 0.000 0.000 0.000 /usr/lib/python2.6/Cookie.py:573(__init__)
0 0.000 0.000 profile:0(profiler)
---- By file ----
tottime
0.0% 0.000 /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/utils/functional.py
0.0% 0.000 /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/http/__init__.py
0.0% 0.000 /usr/lib/python2.6/Cookie.py
0.0% 0.000 /home/mysite/mysite/mysite/map/views.py
---- By group ---
tottime
0.0% 0.000 /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/utils
0.0% 0.000 /usr/local/lib/python2.6/dist-packages/Django-1.3.1-py2.6.egg/django/http
0.0% 0.000 /usr/lib/python2.6
0.0% 0.000 /home/mysite/mysite/mysite/map
因此,探查器沒有返回任何數字,但Chrome報告從請求資源到實際獲得任何響應的延遲時間爲647毫秒。我到服務器的ping時間大約是50毫秒。任何想法,我可以得到更好的分析,所以我可以看到Django在哪裏造成這種放緩?
我的WSGI配置。我用uwsgi使用切諾基。
import os
import sys
path = '/home/mysite/mysite/mysite/'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
我在不同的計算機以及不同的網絡上看到這種延遲(在20毫秒內)。我剛剛使用manage.py runserver時也看到了它。
你有多少次請求獲得這些全爲零的分析數據? 「Chrome報告延遲時間爲647毫秒」。你有沒有測量過你的電腦有多慢?大部分網站的速度都在桌面上 - 而不是網絡上。 – 2012-02-20 13:59:59
你使用什麼網絡服務器?你有沒有嘗試使用像apache-utils這樣的實際分析工具? – 2012-02-20 14:12:38
django_debug toolabar – dm03514 2012-02-20 14:30:53