Estoy escribiendo una implementación de algoritmo usando Java. Hasta OS X 10.7, utilicé el Shark Profiler para perfilar mi implementación, que funcionó bastante bien. Sin embargo, los nuevos instrumentos ya no encuentran los nombres de los procedimientos. Ya intenté ejecutar la aplicación java con los argumentos VM para shark (concretamente, -agentlib: Shark), pero se desconocen a 10.7, y no pude encontrar tal agentlib para los instrumentos.Faltan nombres de procedimientos JAVA en Time Profiler, Instruments, OS X
¿Alguna idea sobre cómo puedo adjuntar nombres de procedimientos a los nombres de símbolos (que son algunos números hexadecimales) en Insturments? Estoy usando Eclipse Indigo, si eso hace alguna diferencia.
Gracias!
Editar: Hasta ahora, nada ha cambiado con OS X Mountain Lion.
Edición # 2: Una actualización de un desarrollador a través de reportero de errores de Apple (?):
dtrace apoyo ha tenido para Java se acumula en los puntos en el pasado, aunque honestamente no podría decir si el apoyo ha sido mantenido. Puede ser una solución viable para lo que está tratando de medir, que de otro modo no sería una prioridad para las herramientas de rendimiento en este momento. Es posible que desee comenzar con el script D en /usr/bin/cpu_profiler.d y modificarlo para recopilar el jstack también.
Edición # 3: Muy bien, después de algunas discusiones más, resulta que el desarrollador mismo no sabía de dónde provenía esa secuencia de comandos. Aparentemente, el perfilador de tiempo en Instruments no usa DTrace de ninguna manera, por lo que la única opción que queda es escribir nuestro propio script o instrumento DTrace.
Tienes razón, y me disculpo. No estoy seguro de dónde vino ese guión, y cuando lo analicé cuidadosamente, no tiene acciones jstack, así que no es lo que quieres de todos modos. Parece que la única opción de creación de perfiles de Java que puedo ofrecer es DTrace. DTrace tiene un proveedor de perfiles y una acción jstack que recopila pilas java. Puede usar "agregados" para determinar los rastros de pila más pesados, y todo esto funciona desde la línea de comandos. La documentación de DTrace es mantenida principalmente por Sun y yo te dirigiría a cualquier tutorial de DTrace ya que la mayoría cubre el proveedor de perfiles.
A pesar de lo que dice la gente en línea, Instruments no utiliza DTrace para todo, específicamente para el perfil del tiempo, por lo que no puedo ofrecerle una solución rápida en la interfaz de usuario de Instruments.
Genial, gracias. Espero que esto se resuelva pronto, aunque el error ha existido desde hace bastante tiempo. Archivaré un informe de error. – HdM
Entonces, recibí una actualización de un desarrollador que dice lo siguiente: "dtrace ha tenido soporte para acumulaciones de Java en momentos pasados, aunque honestamente no pude decir si el soporte se ha mantenido. Puede ser una solución viable para lo que está tratando de medir, que de otro modo no sería una prioridad para las herramientas de rendimiento en este punto. Puede comenzar con el script D en /usr/bin/cpu_profiler.d y modificarlo para recolectar el jstack también. " – HdM
Estaría muy interesado en saber si funciona algo. –