rendimiento mediciones
-
30-09-2019 - |
Pregunta
herramienta de pruebas de carga para las pruebas de rendimiento de los módulos Java. Un problema que enfrenté es el algoritmo de rendimiento mediciones. Las pruebas se ejecutan en varios rosca (configurar el cliente ¿Cuántas veces se debe repetir la prueba), y se registra el tiempo de ejecución. Por lo tanto, cuando las pruebas se terminaron hemos historia siguiente:
4 test executions
2 threads
36ms overall time
- idle
* test execution
5ms 9ms 4ms 13ms
T1 |-*****-*********-****-*************-|
3ms 6ms 7ms 11ms
T2 |-***-******-*******-***********-----|
<-----------------36ms--------------->
Para el cálculo del momento I rendimiento (por segundo) en un siguiente manera:. 1000 / overallTime * threadCount
Pero no hay problema. ¿Qué pasa si un hilo completará su propias pruebas con mayor rapidez (por cualquier razón):
3ms 3ms 3ms 3ms
T1 |-***-***-***-***----------------|
3ms 6ms 7ms 11ms
T2 |-***-******-*******-***********-|
<--------------32ms-------------->
En este caso, el rendimiento real es mucho mejor debido mide el rendimiento es delimitada por el hilo más lenta ??em>. Por lo tanto, mi pregunta es ¿cómo debería medir el rendimiento de la ejecución de código en el entorno multiproceso.
Solución
¿Qué hay de throughput[t] = numberOfTests[t] / overallTime[t]
por separado para cada t
hilo, y luego calcular la media de todas throughput
?
A continuación, también se puede calcular cosas como el rango y la desviación estándar para obtener una mejor imagen. Personalmente me gusta mucho diagramas de caja . Pero sólo los números en sí sería interesante.
Otros consejos
Sé que es un poco tarde, pero tengo dos entradas de blog asociadas con su pregunta. La primera describe la forma de medir el rendimiento (y tiempo de respuesta). El segundo describe una forma de gráfico de rendimiento .