【问题标题】:Caliper: How to run multiple benchmarks?Caliper:如何运行多个基准测试?
【发布时间】:2011-01-03 12:05:55
【问题描述】:

我使用Caliper 编写了一些基准测试。如何一次运行多个基准测试?我目前有许多扩展 SimpleBenchmark 的类,并且每个类都有一些 timeXXX 方法。是否可以同时运行所有这些?

SimpleBenchmark's javadocs说:

套件的基准由 定义。它们可能是静态的。他们不允许带参数。 . ..

呃,什么?这看起来不完整。

Caliper 的mailing list 说它不是用于问答,并在这里发布带有“caliper”标签的问题。但是,我看到零个带有此标签的 SO 帖子!由于我还没有 1500 rep,所以我无法创建新标签。

用例:只有一种 setUp/tearDown 方法。我的基准课程中有很多测试,每个测试都分配了大量内存。我目前必须使用一个巨大的堆,它只会随着我添加更多测试而变得更大。此外,一个文件中的许多测试变得有点难以维护。最好指定多个基准测试类并将所有测试中的所有测试视为一次运行。

【问题讨论】:

  • 用“caliper”标记帖子

标签: java benchmarking caliper


【解决方案1】:

没有。没有内置机制可以将不相关的基准测试作为一个套件运行。您可以使用简单的 shell 脚本来完成此操作:

#!/bin/bash
echo $* | xargs -n 1 $CALIPER_HOME/caliper

您的用例是什么?我们希望更好地支持在Hudson 等中运行基准测试;希望我们能尽快把它放在一起。

【讨论】:

  • 关于您的用例,您最好使用@Param 枚举而不是单独的 time() 方法来定义每个策略。
  • 每个 time() 方法都在测试不同的类。我正在比较许多地图实现(它们并不都实现通用接口)。
猜你喜欢
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多