2009-11-17 10 views
6

Me doy cuenta de que mi servidor de desarrollo django (versión 1.1.1) en mi máquina Windows 7 local utiliza una gran cantidad de CPU (~ 30%, según la entrada python.exe del administrador de tareas), incluso en estado inactivo, es decir, solicitud entrando/saliendo. ¿Existe una forma establecida de analizar qué podría ser responsable de esto?Django servidor de desarrollo CPU intensivo - ¿cómo analizar?

Gracias!

Martin

+0

¿Buscó información en el generador de perfiles de Python? –

+0

Python.exe es el responsable del proceso :) Es posible que desee revisar su publicación para decir "averigüe qué podría estar causando esto". –

Respuesta

12

FWIW, deberías hacer el perfilado, pero cuando lo hagas, apostaré a que la respuesta es "buscar cambios en tus archivos para que se pueda volver a cargar automáticamente". Puede hacer una prueba rápida con "python manage.py runserver --noreload" y ver cómo eso afecta el uso de la CPU.

+0

esto hizo el uso de la CPU mágica en estado inactivo dropepd al 0% ... – Hoff

3

Hit Control-C y bloqueo el proceso. Probablemente se bloqueará en algún lugar que está pasando mucho tiempo.

O podría utilizar un generador de perfiles.

+1

Puede que piense que esto es una broma, pero en serio, esta puede ser una forma rápida de averiguar dónde pasa su tiempo el programa. Más allá de este enfoque rápido y brutal, usa un generador de perfiles. – steveha

0

El enfoque estándar es utilizar un perfilador. Si, por alguna razón, no puede (como no hay un perfilador disponible en el modpython de Apache que esté ejecutando su Django) su mejor opción podría ser simplemente instrumentar su programa con el registro. Mire los mensajes de su programa y vea lo que puede aprender de ellos.

Si ve un mensaje "Ingresando CalculateFoo()" y luego cinco segundos más tarde "Saliendo de CalculateFoo()" esa es una pista importante allí. O si una función en particular sigue imprimiendo una y otra vez.

Aquí hay una breve discusión sobre el registro de Python.

Python debugging tips

EDIT: Me he dado cuenta de que concretamente indican que se trataba en el escritorio de Windows 7. Por lo tanto, use un generador de perfiles. Pero dejaré esta respuesta para cubrir el caso general.

Cuestiones relacionadas