¿Cómo comparar un progtwig de Kotlin?

¿Hay alguna herramienta disponible que pueda ayudar a comparar algún código en Kotlin?

Puedo usar algo similar a los enfoques sugeridos aquí: http://www.ibm.com/developerworks/java/library/j-benchmark1/index.html – pero me preguntaba si había alguna herramienta nativa de Kotlin, por lo que no necesariamente tendría que redevise la rueda!

Para la evaluación comparativa usa JMH . Este marco puede ayudarlo a escribir el punto de reference más relevante y saber mucho sobre cómo funciona JVM. Hay un viejo proyecto en github , pero espero que solo puedas actualizar versiones y que estés bien.

Todas las herramientas de evaluación comparativa de bajo nivel son las mismas que usaría para Java, ya que el código de bytes es idéntico.

Si con "herramientas nativas de Kotlin" te refieres al azúcar sintáctico para medir el performance (relativo), entonces stdlib proporciona measureTimeMillis y measureNanoTime :

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

Los resultados pueden variar de una ejecución a otra por razones obvias, pero puede ayudar a estimar el performance relativo.

Aquí hay una herramienta simple de micro-benchmarking en Kotlin: https://gist.github.com/olegcherr/b62a09aba1bff643a049

El uso es simple:

 simpleMeasureTest { // your code for the benchmark } 

También puede configurar las testings, por ejemplo:

 simpleMeasureTest(ITERATIONS = 1000, TEST_COUNT = 10, WARM_COUNT = 2) { // your code for the benchmark } 

Después de ejecutar este código ingrese a la console. La salida se verá así:

 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 

Para hacerte la vida más fácil, crea un nuevo filter de salida de console. Aquí está mi filter en Android Studio:

enter image description here

  • : aplicación: error de kaptDebugKotlin al ejecutar testing unitaria
  • Kotlin - Ordenar colección de maps
  • ¿Es posible inyectar en campo un adaptador de vista de reciclador con Dagger 2.11
  • java.util.logging.Logger en class probada
  • ¿Cómo determinar si un object es henetworkingado de cierta class en Kotlin?
  • Kotlin en Android: no se puede encontrar el manifiesto principal fusionado. Que esta causando este error?
  • Nullablity de los attributes generados por DB
  • Funciones previas en Kotlin: buenas prácticas
  • El proyecto no se comstackrá con Kotlin 1.1.3
  • No se puede instalar el gradle para android studio 3.0
  • Kotlin + JUnit + postgres para testings de integración: conexiones filtradas