Gran time de compilation para el código de Kotlin en IntelliJ

He usado Kotlin con la última versión de Eclipse durante 2 meses sin ningún problema de performance en mi computadora con Windows 10 . Ahora me gustaría hacer una session de encoding en vivo sobre Kotlin con intelliJ (ya que es el lenguaje JetBrains …) última edición que acabo de instalar y nunca antes había usado, en una computadora OSX reciente. Las dos computadoras tienen buen hardware y no limitan mis testings.

Mi problema es que cada vez que hay una modificación en mi código de Kotlin, el time de compilation es de entre 8 segundos y 35 segundos . Hice mis testings en código minimalist:

class TestKotlin { var a = 1 } 

Si cambio la variable "a" y necesito volver a comstackr, siempre se necesitan 8 segundos en el mejor de los casos para completar la compilation.

Como quiero hacer una session de encoding en vivo con muchas pequeñas funciones y comstackciones, este tipo de retraso es demasiado significativo. Los televidentes necesitarán esperar mucho antes de ver los resultados en cada compilation, lógicamente esperan un buen performance de la herramienta IntelliJ.

En el mismo proyecto, traté de hacer el mismo tipo de class de Java (con un único atributo) y modificar su atributo para activar la compilation, y toma less de 1 segundo para comstackr.

Traté de comstackr manualmente el código en la línea de command con eso:

 kotlinc hello.kt -include-runtime -d hello.jar java -jar hello.jar 

Tuve algunos times de compilation decentes, incluso si fue cerca de 3 segundos .

Cuando miro la pantalla de "Mensajes" en IntelliJ mientras está comstackndo el código de Kotlin, puedo ver esto:

 Information:Kotlin: Kotlin JPS plugin version 1.0.6-release-127 Information:Kotlin: Using kotlin-home = /Users/myUsername/Library/Application Support/IntelliJIdea2016.3/Kotlin/kotlinc 

Se detiene aquí durante todo el time de compilation, y luego realiza casi instantáneamente los siguientes pasos:

 Information:Kotlin: Kotlin Compiler version 1.0.6-release-127 Information:17/01/17 11:38 - Comstacktion completed successfully in 11s 639ms 

Tal vez haya un problema en la configuration de IntelliJ o algo así. Me costó mucho search algo que pudiera mejorar las actuaciones, pero nada me ayudó …

¡Estaría muy agradecido si alguien puede ayudarme a tener un time de compilation realist con Kotlin en Intelliji como en Eclipse!

Asegúrate de haber marcado esos cuadros en la configuration:

  • Comstackción incremental de Kotlin
  • Demonio comstackdor de Kotlin (mantiene vivo el process de kotlinc)

Esto parece similar al problema KT-15491 .

Para asegurarse de que sea su caso también, intente ejecutar el siguiente progtwig simple de Kotlin:

 import java.io.File import kotlin.system.measureNanoTime fun main(args: Array<String>) { val elapsedNs = measureNanoTime { File.createTempFile("tmp", "", null).deleteOnExit() } println(elapsedNs.toDouble() / 1000000000) } 

Si el time transcurrido impreso es significativamente mayor que una fracción de segundo, esa es la razón.

Este problema afecta no solo al comstackdor de Kotlin, sino a cada progtwig de JVM que intenta crear un file temporal, o para realizar cualquier otra acción que involucre la class SecureRandom .

He experimentado la misma desaceleración en cada compilation de JPS en mi computadora portátil con Windows 7. Intenté la solución con el order de los proveedores de security descrito en esta pregunta y me ayudó.

  • Error: com.app.android.dagger.component.AppComponent (no codificado) no puede hacer reference a enlaces delimitados:
  • Kotlin crea una instancia de la list inmutable
  • Genera kdoc y mira en el browser
  • Intento de migrar en canario 5
  • No se puede acceder a EditText u otros componentes de la interfaz de usuario con Kotlin
  • Kotlin: ¿Hay alguna manera de limpiar las sobrecargas de numbers?
  • Kotlin no puede identificar los parameters a less que se haga reference explícita
  • La expresión lambda no se usa
  • ¿Cómo funcionan las funciones de extensión de Kotlin?
  • ¿Qué hay de malo en utilizar la inyección de setter para Android ViewModel vs Implementing e Injecting ViewModel.Factory?
  • Polimorfismo en las funciones de extensión en Kotlin