如何基准Kotlin计划?

有没有可用的工具可以帮助基准Kotlin的一些代码?

我可以使用类似于这里建议的方法: http : //www.ibm.com/developerworks/java/library/j-benchmark1/index.html – 但我想知道是否有任何Kotlin本机工具,所以,我不一定要重新发明轮子!

基准使用JMH 。 这个框架可以帮助您编写最相关的基准测试,并了解JVM如何工作。 github上有旧的项目,但我希望你可以更新版本,你好。

所有低级别的基准测试工具都与您使用Java的相同,因为字节码是相同的。

如果“Kotlin本地工具”是指测量(相对)性能的语法糖,则stdlib提供了measureTimeMillismeasureNanoTime

 fun main(args: Array<String>) { val benchmark = measureNanoTime { // some slow code here } } 

由于显而易见的原因,结果可能因运行而异,但可能有助于估计相对性能。

这里是一个简单的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中的过滤器:

在这里输入图像描述

Interesting Posts