是否有任何可用的工具可以帮助对Kotlin中的某些代码进行基准测试?
我可以使用类似于此处建议的方法:http://www.ibm.com/developerworks/java/library/j-benchmark1/index.html - 但我想知道是否有任何Kotlin原生工具,所以我不一定要重新发明轮子!
答案 0 :(得分:7)
答案 1 :(得分:3)
所有低级基准测试工具都与您用于Java的工具相同,因为字节代码完全相同。
如果用“Kotlin原生工具”表示测量(相对)性能的语法糖,那么stdlib提供measureTimeMillis
和measureNanoTime
:
fun main(args: Array<String>) {
val benchmark = measureNanoTime {
// some slow code here
}
}
由于显而易见的原因,结果可能因运行而异,但它可能有助于估计相对性能。
答案 2 :(得分:3)
以下是Kotlin中的一个简单的微基准测试工具: https://gist.github.com/olegcherr/b62a09aba1bff643a049
用法很简单:
simpleMeasureTest {
// your code for the benchmark
}
您也可以配置测试,例如:
simpleMeasureTest(ITERATIONS = 1000, TEST_COUNT = 10, WARM_COUNT = 2) {
// your code for the benchmark
}
运行此代码后,进入控制台。输出将如下所示:
I/System.out: [TimeTest] -> go
I/System.out: [TimeTest] Warming 1 of 2
I/System.out: [TimeTest] Warming 2 of 2
I/System.out: [TimeTest] 770ms
I/System.out: [TimeTest] 784ms
I/System.out: [TimeTest] 788ms
I/System.out: [TimeTest] 881ms
I/System.out: [TimeTest] 802ms
I/System.out: [TimeTest] 794ms
I/System.out: [TimeTest] 789ms
I/System.out: [TimeTest] 786ms
I/System.out: [TimeTest] 750ms
I/System.out: [TimeTest] 762ms
I/System.out: [TimeTest] -> average=790ms / median=788ms
为了让您的生活更轻松,请创建一个新的控制台输出过滤器。 这是我在Android Studio中的过滤器: