IntelliJ的Kotlin代码编译时间很长

我已经使用Kotlin的最新版本的Eclipse 2个月没有任何性能问题在我的Windows 10计算机上。 现在我想在最近的一台OSX电脑上安装和使用intelliJ (因为它是JetBrains语言…)终极版本,我刚刚安装并且从未使用过。 这两台电脑有很好的硬件,并不限制我的测试。

我的问题是,每当我的Kotlin代码有修改,编译时间在8秒35秒之间 。 我对简约代码进行了测试:

class TestKotlin { var a = 1 } 

如果我改变了变量“a”,所以需要重新编译,在最好的情况下总是需要8秒才能完成编译。

由于我想用很多小函数和汇编进行实时编码,所以这种延迟太有意义了。 观众需要等待很多才能看到每个编译的结果,他们从逻辑上期望IntelliJ工具的良好性能。

在同一个项目中,我试图做同样类型的Java类 (具有单个属性),并修改其属性以触发编译,编译时间不到1秒

我试图用命令行手动编译代码

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

我有一些体面的编译时间,即使是接近3秒

当我在编译Kotlin代码时查看IntelliJ中的“消息”屏幕时,我可以看到:

 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 

它停留在这里所有的编译时间,然后几乎立即做下一步:

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

也许在IntelliJ的配置或类似的东西有问题。 我很难找到可以改善表演的东西,但没有任何帮助我…

如果有人能够帮助我在Intellij中像在Eclipse中一样用Kotlin编写一些真实的编译时间,我将不胜感激!

确保你已经在设置中检查了这些框:

  • 增量Kotlin编译
  • Kotlin编译器守护进程(使kotlinc进程保持活动状态)

这似乎与问题KT-15491类似 。

为了确保它也是你的情况,请尝试执行以下简单的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) } 

如果打印的经过时间明显大于几分之一秒,那就是原因。

此问题不仅影响Kotlin编译器,而且影响每个尝试创建临时文件的JVM程序,或者执行涉及SecureRandom类的任何其他操作。

在我的Windows 7笔记本电脑上,每个JPS版本都经历了同样的减速。 我已经尝试了解决这个问题中描述的安全提供程序的解决方法,它有所帮助。