Necesito determinar qué bloqueos son los más buscados en mi código de aplicación. ¿Qué herramientas gratuitas puedo usar para determinar esto?¿Qué herramientas gratuitas están disponibles para analizar la contención de bloqueo en java?
Respuesta
puede utilizar jconsole o jstack tanto en el directorio bin de JDK. La consola J en particular le permite conectarse a su proceso y monitorear los hilos, incluidos los recursos que han bloqueado, y puede ayudarlo a identificar un estado de punto muerto.
El JDK tiene un poco de soporte incorporado: bajo Unix, kill -3 el proceso, bajo windows, ctrl-break. Esto mostrará un volcado de hilo completo, seguido de cualquier punto muerto detectado. Además, en el filtro de hilo puedes ver qué hilos poseen qué bloqueos y compararlos entre sí.
No necesita matar el proceso para obtener un volcado de hilo; simplemente ejecute jstack
El comando kill -3 no mata el proceso. Simplemente lo señala, pero el proceso continuará ejecutándose. –
También puede ver esto en el depurador de eclipse. En la vista de depuración, use el pequeño menú de triángulo descendente en la barra de herramientas de vista para activar "Java-> Mostrar monitores".
Cuando sospeche un interbloqueo, pause la aplicación (seleccione la aplicación en la vista de depuración y presione el botón de pausa en la barra de herramientas de depuración) y si hay un interbloqueo, los hilos de bloqueo se volverán rojos. Si expandes esos hilos, puedes ver la contención del bloqueo.
Si posee el código, puede crear/buscar una implementación de bloqueo que recopile estadísticas de contienda. Si no, prueba las herramientas sugeridas en las otras publicaciones.
tiene algún ejemplo de este tipo de implementación (es decir, código de Java) – Rhubarb
- 1. ¿Qué herramientas están disponibles para la refacturación de Ruby?
- 2. ¿Qué herramientas de análisis estático están disponibles para C#?
- 3. ¿Qué herramientas están disponibles para documentar los complementos de jQuery?
- 4. ¿Qué herramientas de registro de depuración están disponibles desde Javascript?
- 5. Qué herramientas de diseño de pantalla están disponibles
- 6. Herramientas disponibles para depurar problemas de producción en aplicaciones Java
- 7. ¿Cómo medir la contención de bloqueo?
- 8. ¿Qué herramientas están disponibles para determinar qué ensamblados de .NET han cambiado desde la última compilación?
- 9. ¿Qué complementos/utilidades están disponibles para TFS?
- 10. ¿Qué herramientas BUENAS están disponibles para generar ERD desde una base de datos de SQL Server?
- 11. ¿Qué bibliotecas de crawlers web PHP están disponibles?
- 12. ¿Qué herramientas gratuitas de formato SQL existen?
- 13. ¿Qué herramientas están disponibles para visualizar qué métodos llaman a otros métodos para el código de Java?
- 14. ¿Cómo medir la contención mutex?
- 15. ¿Qué diferentes algoritmos de clasificación están disponibles en Java 6?
- 16. Qué bibliotecas están disponibles para analizar C++ para extraer información de tipo
- 17. ¿Qué informes están disponibles para svn?
- 18. Qué tipo de herramientas están disponibles para completar los datos de prueba en mongodb
- 19. ¿Qué controladores MySQL están disponibles para node.js?
- 20. Herramientas de IU gratuitas para desarrolladores
- 21. ¿Qué herramientas están disponibles para realizar ingeniería inversa en una base de datos sqlite?
- 22. ¿Qué herramientas están disponibles para crear un archivo de ayuda en Visual Studio 2010?
- 23. Qué herramientas (gratuitas) usa para diseñar el software
- 24. ¿Qué herramientas están disponibles para TDDD (Desarrollo de bases de datos controladas por prueba)?
- 25. ¿Qué herramientas están disponibles para probar el rendimiento de las sentencias de SQL?
- 26. ¿Qué Herramientas/marcos de desarrollo impulsado por comportamiento (BDD) están disponibles para Microsoft Stack?
- 27. ¿Qué herramientas de emacs están disponibles para el programador Perl? ¿Cómo instalarlos?
- 28. ¿Qué frameworks basados en actores están disponibles para Scala?
- 29. Qué herramientas están disponibles para editar páginas de manual, es decir, editores GUI WYSIWYG (cualquier plataforma)
- 30. ¿Qué herramientas de cliente están disponibles para administrar Amazon S3 y CloudFront?
Creo que la pregunta se relaciona con algunas estadísticas sobre la contención de bloqueo durante la ejecución de la aplicación: cuáles son los bloqueos activos en el sistema. – akarnokd