【问题标题】:Kotlin extremely slow compile timeKotlin 编译时间极慢
【发布时间】:2021-10-30 19:05:49
【问题描述】:

为什么编译和运行 Kotlin 非常慢(至少在我的机器上)?我的机器上安装了最新版本的 Kotlin 编译器。

具体命令:

kotlinc main.kt -include-runtime -d main.jar && java -jar main.jar

速度太慢了,打印“hello word”最多需要 9 秒。

我最初认为默认情况下它很慢(我使用了 dDcoder 应用程序),但现在我使用了在线游乐场和 Sololearn,它的速度要快得多。

我的电脑运行的是带有 Core i5 和 4GB RAM 的 Windows 10。

【问题讨论】:

  • 其实这个命令不只是编译main.kt,它还会启动JVM并在那里运行编译好的代码

标签: kotlin jetbrains-ide kotlinc


【解决方案1】:

这通常是 Kotlin 用户的常见抱怨,尤其是在第一次编译项目时。不幸的是,您对此无能为力,您的 PC 规格足以有效构建和运行 Kotlin 项目。

我的建议,对于离线编译,使用 Intellij IDEA。此 IDE 对 Kotlin 提供最有效的支持...因为它由 Jetbrains 生产和管理。

如果您已经使用 Intellij IDEA,项目从第一次构建开始编译所需的时间会更少。

当我从 Java 开始使用 Kotlin 时,我也有同样的抱怨。 Java 的编译时间比较快,目前编译时间差也无能为力。

【讨论】:

  • 感谢 Intellij IDEA。
【解决方案2】:

也许我有偏见,但我认为以这种方式编译 Kotlin 代码是不寻常的,所以它没有那么好优化。通常,我们使用 IntelliJ 或 Gradle(或 Maven),而不是直接使用 kotlinc。 Gradle 可以缓存已编译的代码,它可以运行后台守护程序,而不是在每次构建时重新初始化所有内容,等等。

如果我们创建一个 Gradle 项目,甚至由几个子模块、一些多平台模块等组成,那么重复运行它并进行微小的更改每次只需不到一秒钟的时间。即使更改分布在多个子模块中,Gradle 也必须构建所有子模块。

话虽如此,编译时间是目前 Kotlin 中的一个常见问题。我相信优化在 Kotlin 团队优先级列表的顶部附近,所以希望我们能在不久的将来看到一些改进。就目前而言,这对某些人来说是个问题。

【讨论】:

  • 谢谢,我会安装 Intellij IDEA 。
猜你喜欢
  • 2016-08-30
  • 2014-04-25
  • 2014-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 2017-02-05
  • 2014-04-25
相关资源
最近更新 更多