2012-08-26 12 views

Respuesta

12

Si está usando SLIME, hay algunas profiling commands que puede usar además de time y herramientas específicas de implementación.

Utilice M-x slime-toggle-profile-fdefinition para (des) funciones específicas de perfil, M-x slime-profile-report para mostrar los resultados y M-x slime-profile-reset para restablecer.

+0

Esto es realmente fácil de usar. Gracias. – yilmazhuseyin

11

Si está usando SBCL, hay un prolijo generador de perfiles estadísticos disponible - http://www.sbcl.org/manual/Statistical-Profiler.html.

Para mediciones simples, puede usar time, que está disponible en todas las implementaciones de Common Lisp.

+0

Me gusta el paquete sb-sprof. Proporciona todas las funciones llamadas (incluidas las funciones del sistema) Mi problema con esto es que realmente no puedo ver dónde se están llamando algunas de esas funciones. ¿Hay alguna implementación del generador de perfiles línea por línea en el ceceo común, (algo así como python memmory profiler quizás https://github.com/fabianp/memory_profiler) aquí hay un código python de muestra y su resultado memmory_profiler https: //gist.github .com/3235444. Con este puedo cambiar los tipos de secuencia y ver el resultado de memmory. No muestra excesivamente bottlenecs, pero es bastante bueno para encontrar problemas relacionados con el tipo. – yilmazhuseyin

+0

Además, si está utilizando SBCL, asegúrese de hacer una compilación de archivos (o sistema completo) y leer la totalidad de las notas del compilador. Probablemente haya algunas notas de eficiencia allí. – Vatine

+0

@yilmazhuseyin SBCL también tiene un [perfilador determinista] (http://www.sbcl.org/manual/Deterministic-Profiler.html#Deterministic-Profiler), pero todavía está orientado a funciones, no orientado a líneas (no lo ha usado) Para ver quién llama a una determinada función, puede utilizar 'Cc Cw c' de SLIME en el nombre de la función (SLIME tiene muchos [comandos de referencia cruzada] útiles (http://common-lisp.net/project/slime/doc/html/ Cross_002dreference.html)). –

Cuestiones relacionadas