Как составлять время запросов Django - PullRequest
8 голосов
/ 09 декабря 2010

Я всегда использовал библиотеку Python timeit для определения времени моих маленьких программ на Python. Сейчас я занимаюсь разработкой приложения Django, и мне было интересно, как рассчитать время выполнения моих функций Django, особенно запросов.

Например, у меня в файле views.py есть def index(request), который делает кучу вещей, когда я загружаю страницу индекса. Как я могу использовать timeit для определения времени этой конкретной функции, не слишком меняя мои существующие функции?

Ответы [ 3 ]

17 голосов
/ 09 декабря 2010

если ваш проект django находится в режиме отладки, вы можете просмотреть запросы к базе данных (и время), используя:

>>> from django.db import connection
>>> connection.queries

Я знаю, что это не удовлетворит вашу потребность в профильных функциях, но надеюсь, что это поможет в части запросов!

5 голосов
/ 09 декабря 2010

Панель инструментов отладки - это то, что вам нужно, она помогает вам определять время каждого из ваших запросов.

В качестве альтернативы этот фрагмент кода также работает.

http://djangosnippets.org/snippets/93/

0 голосов
/ 05 апреля 2019

Вы также можете использовать командную строку Django shell.

%time SomeModel.objects.count()

Показывает счет Wall time в мс.Нечего импортировать, кроме SomeModel.

...