Escribí un programa common-lisp y es más lento de lo necesario. Ahora quiero analizar mi código para ver a dónde va mi tiempo. ¿Hay alguna herramienta que la gente use?mida el rendimiento de un programa common-lisp
Respuesta
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.
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.
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
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
@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)). –
- 1. Mida el tiempo de ejecución en C#
- 2. Herramientas para analizar el rendimiento de un programa Haskell
- 3. ¿Puede __tribuir __ ((empaquetado)) afectar el rendimiento de un programa?
- 4. Mida el ancho de un AttributedString en J2ME
- 5. Mida la vista en el fragmento
- 6. Mida la carga de CPU de las aplicaciones Javascript
- 7. Mida el tiempo de ejecución en C++ código OpenMP
- 8. ¿Cómo mejorar el rendimiento de este programa Haskell?
- 9. Rendimiento terrible: un problema simple de sobrecarga, ¿o hay un error en el programa?
- 10. Mida el tiempo que lleva ejecutar una consulta t-sql
- 11. ¿Cómo crear un temporizador de alta resolución en Linux para medir el rendimiento del programa?
- 12. ¿Las instrucciones de importación múltiples en un programa afectan el rendimiento?
- 13. ¿El siguiente programa es un programa C99 estrictamente conforme?
- 14. ¿La ofuscación afecta el rendimiento?
- 15. ¿Cómo calcular con precisión el tiempo que le toma a un programa Java escribir o leer un archivo?
- 16. Diferencia de rendimiento entre gcc y g ++ para el programa C
- 17. Punteros compartidos y el rendimiento
- 18. Mida con precisión el tiempo del reloj de pared transcurrido en .NET
- 19. Rendimiento del rendimiento anidado en un árbol
- 20. Un programa que crea otro programa
- 21. Ubuntu Java: busque el pid de un programa específico y elimine el programa
- 22. ¿Reescribir este rendimiento de foreach a un rendimiento de linq?
- 23. ¿Iniciar el programa en un segundo monitor?
- 24. Invocando el depurador desde un programa C
- 25. Espere un segundo al ejecutar el programa
- 26. ¿El uso de un marco PHP afecta el rendimiento?
- 27. cómo cambiar el contenido de un FloatBuffer, manteniendo el rendimiento?
- 28. Ejecutar un programa Java de nuestro programa Java
- 29. ¿Cómo evaluar el rendimiento de CUDA?
- 30. ¿cuál tienda keyvalue tiene el mejor rendimiento?
Esto es realmente fácil de usar. Gracias. – yilmazhuseyin