问题标签 [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.
java - 带有历史和图表的 Junit 微基准测试
很想知道 JunitBenchmrak 是否是唯一具有持久化和可用历史数据功能的工具。在 Caliper 或 JMH 上找不到该功能!如果使用其他工具进行微基准测试,请发布
php - 为什么空的 __set() 方法比有效的方法慢?
我正在玩弄 PHP 魔术方法(特别是属性重载),并且在进行微基准测试时遇到了一个我无法解释的怪癖:
似乎__set
一个空主体的方法比一个有效的方法需要更多的时间来运行。下面的代码片段演示了这一点:
有没有人解释为什么会这样?
c++ - 工作线程的性能比主线程差得多
我有一个与我的库一起编译的小型测试程序,用于在使用不同方法(SSE、for-loop、unrolled-loop 等)时测试各种数学函数的速度。这些测试在不同的方法上运行了数十万次,并计算出平均计算时间。我决定为我的计算机的每个核心创建 4 个工作线程,并以这种方式为我的测试运行基准测试。
现在这些是微基准,以纳秒为单位测量,因此差异可能看起来很大,但实际上在该级别上没有其他类型的差异。
这是我以单线程方式运行函数的代码:
这是我的(更快的)代码,用于以多线程方式运行测试:
但结果较慢 D: 所以它执行得更快,但操作给出的结果较慢。
我的单线程版本平均为 77 纳秒,而我的多线程版本平均为 150 纳秒!
为什么会这样?
PS我知道这是一个微小的差异,我只是觉得这很有趣。
java - Java Microbenchmarking Harness vs System.getNanotime()
问题1:为什么JMH
比简单更好System.getNanotime()
?
问题 2:我可以从结果中得出什么结论(看benchmarking results
部分)除了validateLongKeyBinary
比 快 64%validateLongKeyAscii
吗?
示例(代码):
基准测试结果
java - arraylist vs 链表。为什么最后添加时链表会变慢?
ArrayList 耗时 13ms LinkedList 耗时 64ms
我知道这是重复的问题,但请不要删除它,无论他们对这个问题给出什么答案,我都无法理解,谁能用简单的语言解释一下为什么当我们最后添加元素时这个链表会变慢?
java - JMH:不考虑内部方法时间
我有:这样的方法:
问题:我不希望我的程序考虑generateRandomArray
方法花费的时间。
Questuin: 如何generateRandomArray
从 jmh 测量中排除?
java - JMH:无效的初始堆大小
我用 JMH 测试我的程序性能。并且无法配置堆大小。我想知道为什么它不起作用。
问题:
- 为什么 JMH 不接受堆大小配置?
- JMH 是否在没有
jvmArgs
方法的情况下吸收想法堆大小设置?
错误:
主要方法:
想法.vmoptions
主要方法选项:
java - JMH 不能在 Eclipse 中工作(作为 Maven 项目) - 没有要运行的基准
我想开始看看 JMH,但由于某些原因,我无法运行基准测试。让我解释一下我的尝试:
- 在 Eclipse 中设置一个 Maven 项目
定义 pom.xml 如下:
下载了一些官方的 JMH 示例。作为示例,我选择了一个非常简单且不错的起点: http ://hg.openjdk.java.net/code-tools/jmh/file/0c58dc4fcf17/jmh-samples/src/main/java/org/openjdk /jmh/samples/JMHSample_01_HelloWorld.java
- 鼠标右键单击 > 运行方式 > Java 应用程序
然而,这会产生输出:
我用谷歌搜索过,上面的例子似乎应该可以工作,但对我来说不是这样。我也试图通过阅读来解决这个问题,但这似乎对我不起作用:
- 在 Eclipse 中从 main 运行 JMH 时出现“没有匹配的基准”
我试图将生成的类手动移动到 /META-INF/MicroBenchmarks 但这会产生以下错误:
/li>
似乎 JMH 应该在 /META-INF/MicroBenchmarks 中生成一些有效的行——这意味着在这个文件夹中不应该生成 java 类文件,对吗?
谁能帮我找出错误?谢谢你。
ruby - Rubinius 和 JRuby 怎么可能这么慢?
我决定看看迭代一个哈希数组需要多长时间。下面是代码:
时间是通过从循环之前的当前时间减去循环之后的当前时间来计算的。
根据代码中的数学计算,这是 YARV 2.1.1 中计算所花费的时间:
以下是 Rubinius 2.2.6 所用的时间:
和 jRuby 1.7.12
据说 Rubinius 和 jRuby 比 YARV 具有性能优势。为什么他们需要几乎 12 倍的时间来执行相同的基本操作?这是正常的还是我配置不正确?
java - 是否可以使用微基准框架仅对某些语句计时?
我计划对我的 java 代码进行微基准测试,其中涉及对本地和远程数据库的多次调用。我正要使用 System.nanoTime() 但开始阅读有关 jmh 和 caliper 等微基准测试框架的信息。绝对推荐使用这些框架,但是从我读到的任何内容(很少)看来,我们只能对一个完整的方法进行基准测试,而且它还允许我们以非侵入性的方式进行此操作(wrt 现有代码),即我们不需要乱扔现有代码使用 jmh/caliper 的代码/注释。
我只想对某些方法中的特定代码(语句)进行基准测试。是否可以使用任何微基准测试框架来做到这一点?请对此提供一些见解。