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版本都经历了同样的减速。 我已经尝试了解决这个问题中描述的安全提供程序的解决方法,它有所帮助。