java - 计算吞吐量

标签 java performance

我有以下场景。我正在尝试计算 java 的 XSLT 转换器的吞吐量。我有 10 个线程,每个线程迭代 1000 次。线程的任务是读取 XML 和 XSLT 文件并将其转换并写入新文件。

我想计算TPS。能否请您推荐一下TPS的计算方法?

感谢和问候,

斯里尼瓦斯。

最佳答案

好吧,您想在开始时启动一个计时器,并在所有线程完成时停止它。这给你耗时 = 结束时间 - 开始时间。事务 = 10 个线程 * 1000 次迭代 = 10000。TPS = 10000/耗时。

进行这种计时的最简单方法是使用 CyclicBarrier。这是一篇很好的文章,介绍了使用带有 CyclicBarrier 的屏障操作作为计时器(参见最后一个示例):

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

  • 运行超过 1000 次迭代。您需要让热点预热。最好让测试至少运行 10 分钟。
  • 不要打折 GC 时间。您需要了解您正在使用的 GC 以及它的暂停时间如何影响您的结果。至少运行几次 -verbose:gc 是非常有值(value)的。更多信息请看这里:http://java.sun.com/developer/technicalArticles/Programming/GCPortal/
  • 在同一过程中多次重复,直到您看到可重复的结果。
  • 运行多次,直到您认为数字一致为止。

关于java - 计算吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/166354/

相关文章:

java - 如何在 Qt for android 中保持屏幕打开?

java - 如何关闭 Spring Boot 编码器

java - 无限递归错误

algorithm - 提高函数的运行时间意味着什么?

performance - JMeter:高斯随机计时器与泊松随机计时器

java - 将 facebook 的大文本文件加载到内存 (39MB) 以进行自动补全

java - JBoss Wildfly - 部署是临时文件。那属性呢?

linux - 为什么我的 linux 熵有这么低的上限?

c - 在 C 中添加两个 float 组的有效方法?

javascript - 快速检查大文件是否存在 javascript