我写了简单的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