【问题标题】:Calculate Throughput计算吞吐量
【发布时间】:2008-10-03 11:06:13
【问题描述】:

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

我想计算 TPS。你能建议计算TPS的方法吗?

感谢和问候,

斯里尼瓦斯。

【问题讨论】:

  • 我对 TPS 报告有所期待。我很失望。
  • 我看不到您要计算的内容。吞吐量将在很大程度上取决于您的输入文件(大小)、转换的复杂性(样式表)和生成的输出的大小。

标签: java performance


【解决方案1】:

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

进行这种计时的最简单方法是使用 CyclicBarrier。以下是使用 CyclicBarrier 作为计时器的屏障动作的好文章(参见最后一个示例):

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

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

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 2012-11-22
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多