Java巨大的性能差异与相同的测试

时间:2014-07-18 06:50:33

标签: java multithreading performance testing

我用Java编写了一个程序并对其进行了测试,该程序使用不同的测试数据测试程序几十亿次。程序本身只进行计算并使用字符串(我无法提供源代码,抱歉)。为了加快速度,它在一个8核CPU上使用一个带有15个线程的线程池,有16个线程,最多需要12个小时才能完成。

问题是,整个测试的性能从开始到开始都不同。经过一点热身后,我通常每秒可以获得300万次测试,但有时每秒只能进行200万次测试。这种性能差异在整个测试时间(8-12小时)内保持不变,因此它与JIT无关。如果我取消慢速测试并使用完全相同的命令行再次运行它,那么第二次尝试的速度很快。到目前为止,我注意到从开始到开始时差异高达50%。

我做错了什么或可能是什么原因?

1 个答案:

答案 0 :(得分:0)

这在很大程度上取决于您使用的算法的复杂程度。 我知道你不能发布代码,但是你能提到它中使用的着名算法吗?