可能的重复:
我如何在Java写一个正确的微基准?
假设我有两个算法,我如何找出哪一个性能更高?
我的意思是,我可以用数学来证明它,但是如果我使用一些库,这可能会变得单调乏味。没有数学,我从来没有学会过如何做正确的基准。
快速的方法是使用testing.benchmark
:您只需编写如下内容
object Bench extends testing.Benchmark {
// initialize your data here
def run() {
// code to benchmark here
}
}
您可以使用Scala Bench 5 1000000
(或者直接从IDE中编辑运行配置)来运行它,这为run()
方法提供了5组1000000次重复的时间。您可以比较每一个集合的时间,并检查它是否一致(由于JVM预热,第一个集合通常较慢)。
关于使用Java微基准测试框架Caliper的更严格的方法,请参见以下博文:http://www.decodified.com/scala/2011/04/19/microbenchmarking-scala-code。
我是JMH的新手。在运行代码并使用不同的注释之后,我真的不明白它是如何工作的。我使用迭代=1、预热=1、fork=1来查看我的代码将执行一次,但事实并非如此。JMH运行我的代码超过100000次,我不知道为什么。那么,如何控制代码调用的时间?下面是我的代码:(我为测试修复了JMHSample\u 01)
11.4. 基准测试 基准测试是测量一个程序在固定工作负载下的性能。在Go语言中,基准测试函数和普通测试函数写法类似,但是以Benchmark为前缀名,并且带有一个*testing.B类型的参数;*testing.B参数除了提供和*testing.T类似的方法,还有额外一些和性能测量相关的方法。它还提供了一个整数N,用于指定操作执行的循环次数。 下面是IsPalindrome函数的基准测试,其中循
GoCPPLua (JIT) 策略执行的负载在model_b_test.go中进行基准测试。 测试是: 英特尔 酷睿 i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 核, 8 处理器 go test -bench= -benchmem 的测试结果如下 (op = 一次 Enforce() 调用, ms = 毫秒, KB = 千字节): 测试用例 规则大小 时间开销 (m
These benchmarks were designed to measure Javascript running time for Mithril in comparison with other popular Javascript MVC frameworks. Javascript running time is significant because the gzipped siz
https://github.com/17koa/koa-benchmark 比较koa和koa2和express性能 Prerequisites for OSX brew install wrk wrk原理 命令行操作 $ wrk -t8 -c1000 -d10 http://127.0.0.1:3000 Test 首次测试,需要安装依赖,会比较慢 make all 不安装依赖,重复测试
Rust 也支持基准测试,它可以测试代码的性能。让我们把src/lib.rs修改成这样(省略注释): #![feature(test)] extern crate test; pub fn add_two(a: i32) -> i32 { a + 2 } #[cfg(test)] mod tests { use super::*; use test::Bencher;