计算吞吐量

时间:2020-03-06 15:04:10  来源:igfitidea点击:

我有以下几种情况。我正在尝试计算Java的XSLT转换器的吞吐量。我有10个苏黎世,每个都重复1000次。线程的任务是读取XML和XSLT文件并对其进行转换并写入新文件。

我想计算TPS。我们能建议一下TPS的计算方法吗?

谢谢并恭祝安康,

斯里尼瓦斯。

解决方案

好吧,我们想在开始时启动一个计时器,并在所有线程完成时将其停止。这样就可以得到经过时间=结束时间开始时间。事务= 10个线程* 1000次迭代=10000。TPS = 10000 /经过的时间。

进行这种计时的最简单方法是使用CyclicBarrier。这是将屏障动作与CyclicBarrier用作计时器的一个很好的写法(请参见最后一个示例):

  • http://tech.puredanger.com/2007/11/11/thread-coord/

我最后的警告是,像这样的基准测试充满了危险。一些建议:

  • 运行1000多次迭代。我们需要让热点变热。最好我们让测试至少运行10分钟。
  • 不要打折GC时间。我们需要了解所使用的GC及其暂停时间如何影响结果。使用-verbose:gc至少运行几次非常有价值。有关更多信息,请参见此处:http://java.sun.com/developer/technicalArticles/Programming/GCPortal/
  • 在同一过程中运行多次重复,直到看到可重复的结果。
  • 进行多次运行,直到我们相信数字是一致的。