我已经将Kotlin与最新版本的 Eclipse 一起使用了2个月,而我的 Windows 10 计算机没有任何性能问题。 现在我想在最近的 OSX上用 intelliJ (因为它是JetBrains语言......)我刚刚安装并且之前从未使用的终极版本进行关于Kotlin的实时编码会议/ strong>电脑。这两台计算机具有良好的硬件,并不限制我的测试。
我的问题是,每次我的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中像Kotlin那样在Eclipse中获得一些真实的编译时间,我将非常感激!
答案 0 :(得分:1)
这似乎与问题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编译器,还影响尝试创建临时文件或执行涉及SecureRandom
类的任何其他操作的每个JVM程序。
我在Windows 7笔记本电脑上的每个JPS版本都经历了同样的减速。我已尝试使用此question中描述的安全提供程序订单进行解决,并且它有所帮助。
答案 1 :(得分:0)
确保您已在设置中检查了这些框: