当前位置: 首页 > 知识库问答 >
问题:

scala中的基准测试[副本]

聂炜
2023-03-14

可能的重复:
我如何在Java写一个正确的微基准?

假设我有两个算法,我如何找出哪一个性能更高?

我的意思是,我可以用数学来证明它,但是如果我使用一些库,这可能会变得单调乏味。没有数学,我从来没有学会过如何做正确的基准。

共有1个答案

魏刚豪
2023-03-14

快速的方法是使用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;