2009-11-17 1 views
6

Я замечаю, что мой сервер разработки django (версия 1.1.1) на моем локальном компьютере Windows7 использует много CPU (~ 30%, в соответствии с записью python.exe диспетчера задач) даже в состоянии ожидания, то есть нет просьба приход/выход. Существует ли установленный способ анализа того, что может быть причиной этого?Сервер разработки Django CPU интенсивный - как анализировать?

Спасибо!

Martin

+0

Вы указали Google для получения информации о профилировщике Python? –

+0

Python.exe - это ответственный процесс. Возможно, вы захотите пересмотреть свое сообщение, чтобы сказать «узнайте, что может быть причиной этого». –

ответ

12

FWIW, вы должны сделать профилирование, но когда вы сделаете, я уверен, вы обнаружите, что ответ - «опрос на изменения в ваших файлах, чтобы он мог автоматически перезагрузить». Вы можете выполнить быстрый тест с помощью «python manage.py runningerver --noreload» и посмотреть, как это влияет на использование ЦП.

+0

это сделало использование magic - cpu в состоянии бездействия dropepd до 0% ... – Hoff

3

Хит-контроль-С и аварийный процесс. Скорее всего, это сбой, потому что он тратит много времени.

Или вы можете использовать профилировщик.

+1

Вы можете подумать, что это шутка, но серьезно, это может быть быстрый способ узнать, где ваша программа проводит много времени. Помимо этого быстрого и жестокого подхода используйте профилировщик. – steveha

0

Стандартный подход заключается в использовании профайлера. Если по какой-то причине вы не можете (например, нет профайлера, доступного в modpython Apache, который запускает ваш Django), ваш лучший вариант может быть просто инструментом вашей программы с протоколированием. Просмотрите сообщения из своей программы и посмотрите, что вы можете узнать от них.

Если вы видите сообщение «Ввод CalculateFoo()», а затем через пять секунд «Выход из CalculateFoo()», это основной ключ. Или, если одна конкретная функция продолжает печатать снова и снова.

Вот короткое обсуждение журнала Python.

Python debugging tips

EDIT: Я только что заметил, что вы конкретно сказали, что это на рабочем столе Windows 7. Итак, используйте профилировщик. Но я оставлю этот ответ, чтобы охватить общий случай.