问题标签 [caliper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
299 浏览

rest - 使用 Caliper 对 REST 服务进行基准测试……与否?

我想比较我所做的不同服务之间的响应时间。我听说过 Caliper,所以我决定以一种非常简单的方式使用它来拨打电话和测量它们,并具有以下一些功能:

其中 size 是 Caliper 和 Client 的给定参数,这是我编写的一个类,它只是调用服务并检查状态答案是否正常。

一切都很好,除了一些需要花费太多时间来回答的服务,所以我在 Caliper 中有一个错误:

我尝试使用一些参数,如 warmupMillis 和 runMillis,但它似乎不起作用。

所以 :

  1. 有什么简单的方法可以解决我的问题吗?
  2. 如果没有,鉴于我不想要任何复杂的事实,我可以使用哪个基准框架进行比较?
0 投票
1 回答
951 浏览

java - 带卡尺的 Junit 设置

我正在尝试将卡尺代码包装在 junit 中,以便性能测试作为我的单元测试的一部分运行。它似乎工作 - 卡尺测试实际上运行,但它没有成功退出。设置这些东西的正确方法是什么?

0 投票
1 回答
939 浏览

java - 定义一个 gradle 任务来运行 caliper microbenchmark

这可能更像是一个 Gradle 问题而不是 Caliper 问题,但我对 Gradle 还是很陌生。我有兴趣在我的构建中提供一个可以使用 Caliper 运行一些基准测试的任务。我已经将 Caliper 添加到我的 testCompile 依赖项中,并且可以正常工作并将所有内容都拉下来。我想知道如何提供一个实际运行基准的任务。

顺便说一句,我已经知道 caliper-ci。我确实有一个 Jenkins 版本,但它在一个云服务上,还不允许我配置 caliper-ci 的使用,此外,我希望能够在将更改提交到云之前在本地运行。

0 投票
1 回答
229 浏览

java - 卡尺@Param 不工作

我正在尝试@Param在具有以下形式的命令行参数的字段上使用注释:“-Dmyparamname=val1,val2,val3”,但它不起作用。我正在使用 caliper-0.5-rc1.jar。我的实际用法如下:

我的基准课程有以下内容:

但是当我运行时,我只能获得 jit 的选项,而不是 -Dprovider:

等等,最终用“jit=-client”重复所有的基准测试

我本来希望看到:

我尝试了各种选项:包括命令 arg 中值的引号,在内部将它们作为 List 类型的静态字段提供等。从来没有任何迹象表明它正在尝试迭代提供的“提供者”值。

关于我做错了什么有什么想法吗?

0 投票
2 回答
680 浏览

java - 卡尺:为什么不使用注释来定义基准?

刚刚发现了 Caliper 并浏览了文档 - 它看起来是一个很棒的工具(感谢 Kevin 和 Google 的帮派开源它)。

问题。为什么没有基于注释的机制来定义常见用例的基准?似乎是这样的:

将节省几行代码并增强可读性。

0 投票
2 回答
2645 浏览

java - 如何在没有缓存的情况下测量文件读取速度?

我的 java 程序大部分时间都花在读取一些文件上,我想优化它,例如,通过使用并发、预取、内存映射文件等。

没有基准的优化是无意义的,所以我进行基准测试。然而,在基准测试期间,整个文件内容被缓存在 RAM 中,这与实际运行不同。因此,基准测试的运行时间要小得多,而且很可能与现实无关。

我需要以某种方式告诉操作系统(Linux)不要缓存文件内容,或者最好在每次基准测试运行之前清除缓存。或者可能会消耗大部分可用 RAM (32 GB),因此只有一小部分文件内容适合。怎么做?

我正在使用卡尺进行基准测试,但在这种情况下,我认为没有必要(它绝不是微基准),我不确定这是一个好主意。

0 投票
1 回答
93 浏览

java - caliper 可以跳过某些方法的某些参数组合吗?

我正在测试两种方法的 6 种不同实现,这需要time*12 种方法。使用一个接口和@Param一个Supplier我只需要 2 个方法,但是可能会有一些相关的开销,所以我写timeDirect了直接测量其中一个方法来查看开销。

显然timeDirect不依赖于参数,应该只调用一次。有没有办法告诉它卡尺?

0 投票
2 回答
1820 浏览

java - google Caliper 示例测试不起作用?

我下载了最新的 google caliper 源代码并使用 maven 构建它。现在我正在尝试运行此处给出的 google caliper 示例测试。. 我正在使用以下命令来执行测试。

但我收到以下错误。

我试图查看 caliper jar 文件,但找不到 com.google.common.base.Splitter 类文件。即使我无法获得 Splitter.java 文件。有人可以建议我在这里缺少什么吗?

EDIT1:
我发现 com.google.common.base.Splitter 类存在于 appengine-tools-sdk-1.2.1.jar jar 文件中我在命令中包含了 jar 文件,如下所示。

但是错误是相同的,它看起来不像命令正在查看具有 Splitter 类的另一个 jar 文件。

0 投票
1 回答
485 浏览

java - 卡尺:JVM 抛出 OutOfMemoryError 异常

我正在使用 google caliper 对一种方法运行一个非常简单的基准测试。我收到以下异常。

我不明白为什么我会得到这个例外。我试图增加 JVM 内存然后我也得到了这个异常。

基准代码如下。

以及运行 caliper 基准测试的主类。

我不明白这里出了什么问题。有人可以指出吗?

0 投票
1 回答
249 浏览

java - 使用 Caliper 对正则表达式进行微基准测试

我使用 Google Caliper对两种检查字符串中的 mdn 编号的方法进行基准测试。一种方法使用用户定义的方法,而另一种使用正则表达式。我真的很惊讶地发现,平均而言,正则表达式方法比用户定义方法花费的时间长五倍。

这是我的基准测试代码。

以及执行基准测试的主类:

Caliper 基准测试结果如下。

我在这里错过了什么吗?为什么正则表达式执行时间更长?