问题标签 [microbenchmark]

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 投票
0 回答
347 浏览

java - 带有历史和图表的 Junit 微基准测试

很想知道 JunitBenchmrak 是否是唯一具有持久化和可用历史数据功能的工具。在 Caliper 或 JMH 上找不到该功能!如果使用其他工具进行微基准测试,请发布

0 投票
2 回答
77 浏览

php - 为什么空的 __set() 方法比有效的方法慢?

我正在玩弄 PHP 魔术方法(特别是属性重载),并且在进行微基准测试时遇到了一个我无法解释的怪癖:

似乎__set一个空主体的方法比一个有效的方法需要更多的时间来运行。下面的代码片段演示了这一点:

有没有人解释为什么会这样?

0 投票
0 回答
136 浏览

c++ - 工作线程的性能比主线程差得多

我有一个与我的库一起编译的小型测试程序,用于在使用不同方法(SSE、for-loop、unrolled-loop 等)时测试各种数学函数的速度。这些测试在不同的方法上运行了数十万次,并计算出平均计算时间。我决定为我的计算机的每个核心创建 4 个工作线程,并以这种方式为我的测试运行基准测试。

现在这些是微基准,以纳秒为单位测量,因此差异可能看起来很大,但实际上在该级别上没有其他类型的差异。

这是我以单线程方式运行函数的代码:

这是我的(更快的)代码,用于以多线程方式运行测试:

但结果较慢 D: 所以它执行得更快,但操作给出的结果较慢。

我的单线程版本平均为 77 纳秒,而我的多线程版本平均为 150 纳秒!

为什么会这样?

PS我知道这是一个微小的差异,我只是觉得这很有趣。

0 投票
1 回答
944 浏览

java - Java Microbenchmarking Harness vs System.getNanotime()

问题1:为什么JMH比简单更好System.getNanotime()

问题 2:我可以从结果中得出什么结论(看benchmarking results部分)除了validateLongKeyBinary比 快 64%validateLongKeyAscii吗?

示例(代码):

基准测试结果

0 投票
2 回答
174 浏览

java - arraylist vs 链表。为什么最后添加时链表会变慢?

ArrayList 耗时 13ms LinkedList 耗时 64ms

我知道这是重复的问题,但请不要删除它,无论他们对这个问题给出什么答案,我都无法理解,谁能用简单的语言解释一下为什么当我们最后添加元素时这个链表会变慢?

0 投票
1 回答
783 浏览

java - JMH:不考虑内部方法时间

我有:这样的方法:

问题:我不希望我的程序考虑generateRandomArray方法花费的时间。

Questuin: 如何generateRandomArray从 jmh 测量中排除?

0 投票
1 回答
10919 浏览

java - JMH:无效的初始堆大小

我用 JMH 测试我的程序性能。并且无法配置堆大小。我想知道为什么它不起作用。

问题:

  1. 为什么 JMH 不接受堆大小配置?
  2. JMH 是否在没有jvmArgs方法的情况下吸收想法堆大小设置?

错误:

主要方法:

想法.vmoptions

主要方法选项:

0 投票
4 回答
8996 浏览

java - JMH 不能在 Eclipse 中工作(作为 Maven 项目) - 没有要运行的基准

我想开始看看 JMH,但由于某些原因,我无法运行基准测试。让我解释一下我的尝试:

  1. 在 Eclipse 中设置一个 Maven 项目
  2. 定义 pom.xml 如下: 在此处输入图像描述

  3. 下载了一些官方的 JMH 示例。作为示例,我选择了一个非常简单且不错的起点: http ://hg.openjdk.java.net/code-tools/jmh/file/0c58dc4fcf17/jmh-samples/src/main/java/org/openjdk /jmh/samples/JMHSample_01_HelloWorld.java

  4. 鼠标右键单击 > 运行方式 > Java 应用程序

然而,这会产生输出:

我用谷歌搜索过,上面的例子似乎应该可以工作,但对我来说不是这样。我也试图通过阅读来解决这个问题,但这似乎对我不起作用:

似乎 JMH 应该在 /META-INF/MicroBenchmarks 中生成一些有效的行——这意味着在这个文件夹中不应该生成 java 类文件,对吗?

谁能帮我找出错误?谢谢你。

0 投票
1 回答
1768 浏览

ruby - Rubinius 和 JRuby 怎么可能这么慢?

我决定看看迭代一个哈希数组需要多长时间。下面是代码:

时间是通过从循环之前的当前时间减去循环之后的当前时间来计算的。

根据代码中的数学计算,这是 YARV 2.1.1 中计算所花费的时间:

以下是 Rubinius 2.2.6 所用的时间:

和 jRuby 1.7.12

据说 Rubinius 和 jRuby 比 YARV 具有性能优势。为什么他们需要几乎 12 倍的时间来执行相同的基本操作?这是正常的还是我配置不正确?

0 投票
2 回答
210 浏览

java - 是否可以使用微基准框架仅对某些语句计时?

我计划对我的 java 代码进行微基准测试,其中涉及对本地和远程数据库的多次调用。我正要使用 System.nanoTime() 但开始阅读有关 jmh 和 caliper 等微基准测试框架的信息。绝对推荐使用这些框架,但是从我读到的任何内容(很少)看来,我们只能对一个完整的方法进行基准测试,而且它还允许我们以非侵入性的方式进行此操作(wrt 现有代码),即我们不需要乱扔现有代码使用 jmh/caliper 的代码/注释。

我只想对某些方法中的特定代码(语句)进行基准测试。是否可以使用任何微基准测试框架来做到这一点?请对此提供一些见解。