我们在IDEA上有一个项目,包括几个中等大小的Java包和一个非常小的Kotlin包(5个文件)。我注意到任何Java软件包的性能都很好,但是对于非常小的Kotlin软件包,自动完成,代码分析和编译速度要慢10倍。自动完成偶尔会如此缓慢,以至于popover无法加载所有方法,并且必须逐步加载一些API。每当我们的开发人员键入单词并等待自动完成时,预计自动完成显示大约需要2-5秒。有时自动填充太慢而无法显示任何内容,我们不得不取消该单词并重新输入并等待。代码分析中出现相同的缓慢。这极大地影响了我团队的工作效率。从我们的研究来看,这似乎是一个众所周知的长期问题。这也适用于我们的另一个小项目。我想知道我们能做些什么来解决这个问题?感谢。
Kotlin插件是最新的,版本:1.1.3-release-IJ2017.2-2 Intellij也是最新版本,2017年2月2.1(建于2017年7月31日)
答案 0 :(得分:1)
在Kotlin 1.3.50中仍然发生。通过在Add unambiguous imports on the fly
中禁用Settings > Editor > General > Auto Import
答案 1 :(得分:0)
我已联系JetBrian并向YouTrack提交了一份请求。在查看CPU快照之后,看起来升级Kotlin插件1.1.4-eap包含性能方面的主要修复将解决问题。刚试了一下就行了!
答案 2 :(得分:0)
我最近在Kotlin gradle多模块项目中遇到了这个问题。我通过大量增加vmoptions中的内存设置来恢复良好的代码分析和完成速度,这就是现在的样子
-Xms512m
-Xmx16384m
-XX:ReservedCodeCacheSize=960m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=100
-ea
-XX:CICompilerCount=2
-Dsun.io.useCanonPrefixCache=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf=true
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true
-Dawt.useSystemAAFontSettings=lcd
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine
-Dsun.tools.attach.tmp.only=true
答案 3 :(得分:0)
您可以将 Kotlin 版本更改为其他版本,然后再次 gradle sync 这将解决问题
你会在 build.gradle 文件(项目)中找到它
ext.kotlin_version = "1.5.21"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"