Benchmarking de progtwigs Java

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

PD: no puedo usar progtwigs para comparar el rendimiento de la JVM o del lenguaje Java en sí (como Wide Finder).

Brent Boyer, escribió una buena serie de artículos para trabajos de desarrollador de IBM: Robust Java benchmarking , que se acompaña de un marco de micro-benchmarking que se basa en un enfoque estadístico sólido. Artículo y la página de recursos .

Ya que lo hace para la universidad, podría estar interesado en Andy Georges, Dries Buytaert, Lieven Eeckhout: evaluación de rendimiento de Java estadísticamente rigurosa en OOPSLA 2007 .

Caliper es una herramienta proporcionada por Google para micro-benchmarking. Le proporcionará gráficos y todo. Las personas que ponen esta herramienta en conjunto están muy familiarizadas con el principio de “la optimización prematura es la raíz de todo mal” (a propósito de jwnting) y son muy cuidadosas al explicar el papel de la evaluación comparativa.

Cualquier progtwigdor experimentado le dirá que la optimización prematura es peor que la no optimización. Es un desperdicio de recursos en el mejor de los casos, y una fuente de infinitos problemas futuros (y actuales) en el peor.

Sin contexto, cualquier aplicación, incluso con registros de referencia, no le dirá nada. Puede que tenga un bucle allí que demore 10 horas en completarse, el punto de referencia mostrará que se demora casi para siempre, pero no me importa porque no es crítico para el rendimiento. Otro bucle toma solo un milisegundo, pero puede ser demasiado largo porque me falla en la captura de 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 lo sabría a menos que supiera qué aplicación, cómo se usa, qué hace, bajo qué condiciones y requisitos.

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

Intereting Posts