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 . Por lo tanto, mi pregunta es ¿cómo debería medir el rendimiento de la ejecución de código en el entorno multiproceso.

¿Fue útil?

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 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top