我寫了簡單的load testing tool來測試Java模塊的性能。我遇到的一個問題是吞吐量測量的算法。測試在多個線程中執行(客戶端配置測試應重複多少次),並記錄執行時間。所以,當測試完成後,我們有以下病史:吞吐量測量
4 test executions
2 threads
36ms overall time
- idle
* test execution
5ms 9ms 4ms 13ms
T1 |-*****-*********-****-*************-|
3ms 6ms 7ms 11ms
T2 |-***-******-*******-***********-----|
<-----------------36ms--------------->
目前我在下列方式計算(每秒):1000/overallTime * threadCount
。
但是有問題。如果一個線程將完成它更快地是自己的測試(無論何種原因):
3ms 3ms 3ms 3ms
T1 |-***-***-***-***----------------|
3ms 6ms 7ms 11ms
T2 |-***-******-*******-***********-|
<--------------32ms-------------->
在這種情況下,實際吞吐量是多少是由的 最慢線程界,因爲測量吞吐量的更好。所以,我的問題是如何測量多線程環境下代碼執行的吞吐量。
是的,我前段時間在看箱子情節。這對於測試結果可視化來說非常有趣。謝謝。 – 2010-04-21 10:07:49