这是我第一次与ScalaMeter和Scala合作。我正在尝试测试两种简单的方法,并根据ScalaMeter Simple benchmark页中给出的示例编写了以下代码:
import org.scalameter.api._
object RangeBenchmark extends Bench.LocalTime {
val sizes = Gen.range("size")(10, 150, 10)
val ranges = for {
size <- sizes
} yield 0 until size
def testPow(x: Double) = Math.pow(x, 5)
def testMul(x: Int) = x * x * x * x * x
performance of "Range" in {
measure method "testMul" in {
using(ranges) in { r =>
r.foreach(testMul(_))
}
}
measure method "testPow" in {
using(ranges) in { r =>
r.foreach(testPow(_))
}
}
}
}
,它运行正常。但是,如果将预定义的测试配置从Bench.LocalTime
更改为Bench.ForkedTime
或Bench.OfflineReport
,则会收到以下错误消息:
Test threw exception: java.lang.ClassNotFoundException: org.scalameter.Parameters java.lang.ClassNotFoundException: org.scalameter.Parameters
...
[error] Could not run test RangeBenchmark: java.lang.ClassNotFoundException: org.scalameter.Parameters
顺便说一下,我正在运行JDK 11。
所以我有两个问题:
谢谢