2010-04-21 8 views
0

j'ai écrit load testing tool simple pour tester les performances des modules Java. Un problème que j'ai rencontré est l'algorithme des mesures de débit. Les tests sont exécutés dans plusieurs threads (le client configure combien de fois le test doit être répété), et le temps d'exécution est enregistré. Ainsi, lorsque les tests sont terminés, nous avons l'histoire suivante:mesures Throughput

4 test executions 
2 threads 
36ms overall time 

- idle 
* test execution 
     5ms 9ms  4ms  13ms 
T1 |-*****-*********-****-*************-| 
     3ms 6ms  7ms  11ms 
T2 |-***-******-*******-***********-----| 
    <-----------------36ms---------------> 

Pour le moment, je débit calculer (par seconde) de manière suivante: 1000/overallTime * threadCount.

Mais il y a un problème. Que faire si un fil complètera ses propres tests plus rapidement (pour une raison quelconque):

 3ms 3ms 3ms 3ms 
T1 |-***-***-***-***----------------| 
     3ms 6ms  7ms  11ms 
T2 |-***-******-*******-***********-| 
    <--------------32ms--------------> 

Dans ce cas de débit réel est beaucoup mieux en raison du débit mesuré est délimité par le fil le plus lent. Donc, ma question est de savoir comment je devrais mesurer le débit de l'exécution de code dans un environnement multithread.

Répondre

1

Comment sur throughput[t] = numberOfTests[t]/overallTime[t] séparément pour chaque thread t, puis de calculer la moyenne de tous throughput?

Ensuite, vous pouvez également calculer des choses comme plage et écart-type pour obtenir une meilleure image. Personnellement, je suis très friand de box plots. Mais juste les chiffres eux-mêmes seraient intéressants.

+0

Oui, je regardais à la case PLACETTES il y a quelque temps. C'est une idée très intéressante pour la visualisation des résultats de test. Merci. –

1

Je sais que c'est un peu en retard, mais j'ai deux postes de blog associés à votre question. Le premier décrit how you measure throughput (et le temps de réponse). Le deuxième describes a way to graph throughput.

+0

Je sais que c'est un peu tard, mais je dois dire que votre premier article est vraiment bon. Merci d'avoir partagé. –

+0

"Erreur d'établissement d'une connexion de base de données":, ( – Crasher

+0

@Crasher - Hmmm, c'est bizarre, je vais regarder aujourd'hui –

Questions connexes