2011-01-03 21 views
10

Para la universidad, realizo modificaciones de bytecode y analizo su influencia en el rendimiento de los programas de Java. Por lo tanto, necesito programas Java, en el mejor de los casos utilizados en producción, y puntos de referencia adecuados. Por ejemplo, ya obtuve HyperSQL y mido su rendimiento por el programa de referencia PolePosition. Los programas Java que se ejecutan en una JVM sin el compilador JIT. ¡Gracias por tu ayuda!Benchmarking de programas Java

P.S .: No puedo usar programas para comparar el rendimiento de la JVM o del lenguaje Java en sí (como Wide Finder).

+0

No está tan claro lo que quieres hacer. ¿Puedes explicarlo un poco más? – Riduidel

+1

el código de bytes generalmente no está optimizado, en cambio el JIT optimizará el código nativo que crea. Por lo tanto, es posible que al cambiar el código de bytes no se mejore el rendimiento de la manera que cabría esperar, ya que depende de cómo se convierta en código nativo. –

+0

@ Peter, creo que está buscando escenarios que ofrezcan el mejor rendimiento – UVM

Respuesta

0

Cualquier programador experimentado le dirá que una optimización prematura es peor que ninguna optimización. Es una pérdida de recursos en el mejor de los casos, y una fuente de infinitos problemas futuros (y actuales) en el peor.

Sin contexto, ninguna aplicación, incluso con registros de referencia, le dirá nada. Es posible que tenga un ciclo que demore 10 horas en completarse, el índice de referencia lo mostrará casi para siempre, pero no me importa porque no es crítico para el rendimiento. Otro bucle demora solo un milisegundo, pero puede ser demasiado largo porque me impide captar los paquetes de datos entrantes que llegan a intervalos de 100 microsegundos.

Dos extremos, pero ambos pueden suceder (incluso en la misma aplicación), y nunca se sabe a menos que conozca esa aplicación, cómo se usa, qué hace, bajo qué condiciones y requisitos.

Si una interfaz de usuario tarda 1/2 segundo en renderizar, puede ser demasiado larga o no hay problema, ¿cuál es el contexto? ¿Cuáles son las expectativas del usuario?

8

Caliper es una herramienta proporcionada por Google para micro-benchmarking. Le proporcionará gráficos y todo. Las personas que juntaron esta herramienta están muy familiarizadas con el principio de "La optimización prematura es la raíz de todo mal" (al punto de Jwnting) y son muy cuidadosos al explicar el papel de la evaluación comparativa.

Cuestiones relacionadas