我正在寻找一个Java基准库。我很熟悉黄曲霉基准测试库的特性,并且对它感到满意。它的特点如下:
* Statistical processing of multiple evaluations
* Inclusion of a warm-up period, designed to allow the JIT compiler to optimise its code
* Purging of gc before testing, to isolate timings from GC state prior to testing
* A final forced GC after testing to estimate impact of cleanup on the timing results它的界面非常友好
(bench expr & opts)打印汇总统计数据的报告,如:
=> (bench (Thread/sleep 1000))
Execution time mean : 1.000803 sec
Execution time std-deviation : 328.501853 us
Execution time lower quantile : 1.000068 sec ( 2.5%)
Execution time upper quantile : 1.001186 sec (97.5%)我在Java中寻找一个类似的库,这个库可能公开一个工作台方法,这个方法需要一个可调用的,或者一个可运行的,并且打印一个类似的报告。例如:
BenchMark.bench(new Callable<String>() {
@Override
public String call() { ... }
})有没有人知道一个功能齐全、开放源码的免费啤酒库就能做到这一点?也许也包括内存统计?
发布于 2013-09-01 21:06:27
Criterium列出了布伦特·布罗耶的基准文章作为灵感:Elliptic Group,Inc. Java基准文章。它附带了一个Java基准库(尽管它包含了很多完全通用的内容)(并且部分致力于提供描述),这正是这种类型的Java基准库(在上面的链接之后向下滚动,查找到jar的链接和源代码下载)。
自述(包括在完整的项目下载中)指定LGPL3为许可。
发布于 2013-09-01 21:15:41
在我看来,目前最好的基准库之一是jmh。它是由Oracle积极开发的,它是开源的,并且被用于openJDK的微基准部分,包括并发性API和JavaFX。
输出非常全面,可以包括每次操作的时间、每毫秒的操作数、置信区间等。您还可以选择引入线程、争用、共享等。
发布于 2013-09-01 21:11:20
对于Java来说,jMeter http://jmeter.apache.org/是性能测试的标准(所以不完全是基准测试) :)。
我们使用Sigar https://support.hyperic.com/display/SIGAR/Home以“平台无关”的方式监视JVM的所有类型的参数(不仅仅是JMX公开的内容)。
https://stackoverflow.com/questions/18562880
复制相似问题