Я пытаюсь отследить некоторые проблемы с производительностью, которые у меня были с 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 мс от запроса ресурса, чтобы получить какой-либо ответ. Время моего пинга на сервере составляет около 50 мс. Любые идеи, как я могу улучшить профилирование, чтобы я мог видеть, где в Django вызывает это замедление?
Моя конфигурация WSGI. Я использую Cherokee с 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 runningerver.
Сколько раз вы делали запрос на получение этих профилирующих чисел, которые являются нулями? «Chrome сообщает о задержке 647 мс». Вы оценили, насколько медленным является ваш компьютер? Большая часть медлительности веб-сайта находится на рабочем столе, а не в сети. –
Какой веб-сервер используется? Вы пытались использовать фактические инструменты для профилирования, такие как apache-utils? –
django_debug toolabar – dm03514