小编Bas*_*en7的帖子

IntelliJ中Kotlin代码的大编译时间

我使用Kotlin和最新版本的Eclipse 2个月,在我的Windows 10计算机上没有任何性能问题.现在,我想在最近的OSX计算机上进行关于Kotlin的实时编码会话,其中包括intelliJ(因为它是JetBrains语言......)我刚刚安装并且从未使用过的终极版本.这两台计算机具有良好的硬件,并不限制我的测试.

我的问题是每次我的Kotlin代码都有修改时,编译时间在8秒35秒之间.我在极简主义代码上做了我的测试:

class TestKotlin {
    var a = 1
}
Run Code Online (Sandbox Code Playgroud)

如果我更改变量"a"并因此需要再次构建,则在最佳情况下总是需要8秒才能完成编译.

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

在同一个项目中,我尝试使用相同类型的Java类(具有单个属性)并修改其属性以便触发编译,并且编译时间不到1秒.

我尝试在命令行中手动编译代码:

kotlinc hello.kt -include-runtime -d hello.jar
java -jar hello.jar
Run Code Online (Sandbox Code Playgroud)

我有一些不错的编译时间,即使它接近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
Run Code Online (Sandbox Code Playgroud)

它在这里停止所有编译时间,然后几乎立即执行下一步:

Information:Kotlin: Kotlin Compiler version 1.0.6-release-127
Information:17/01/17 11:38 - Compilation completed successfully in 11s 639ms
Run Code Online (Sandbox Code Playgroud)

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

如果有人可以帮我在Eclipse中像在Intellij中使用Kotlin那样有一些现实的编译时间,我将非常感激!

compilation intellij-idea kotlin

10
推荐指数
1
解决办法
2710
查看次数

Kotlin协程和Spring Framework 5反应型

Kotlin协程允许通过返回Deferred值来执行非阻塞代码.这对于在使用阻塞方法(例如来自库)时制作非阻塞代码非常有用.

Spring 5允许使用MonoFlux进入框架.我看到的最大兴趣是能够序列化这两种类型的实例,并在有人调用控制器端点时将其作为响应发送回来.

Spring 5的一个重点是对Kotlin(路由器,bean声明......)有一个特定的支持,但是我找不到关于Kotlin协同程序和Spring 5反应类型之间可能的相互作用的信息.

有没有办法结合这些功能的优势?

  • 转换DeferredMono/ Flux
  • 有一个Deferred响应类型的Spring控制器方法?

如果不是,在哪种情况下,如果我们有Spring 5反应类型,协程是否有意义?

spring coroutine kotlin spring-webflux kotlinx.coroutines

6
推荐指数
1
解决办法
1860
查看次数

Micronaut - 使用 Maven 编译 Kotlin 代码

我已经开始使用KotlinMaven开发 Micronaut REST 微服务,并且我很难尝试使用 Intellij 中的这个堆栈获得更好的构建过程。

我本来期望 Kotlin 能够轻松兼容 Micronaut,但由于使用KAPT插件用 Kotlin 处理 Micronaut 注释,每次修改代码时我们都必须对项目进行编译(mvn 编译),这似乎很耗时。

这篇文章帮助我获得了一个很好的解决方案,通过在 Intellij 中实现自动化来使用 Micronaut 和 Gradle 编译 Kotlin: IntelliJ - Gradle - Kotlin - Micronaut - 更改文件不会在“运行”时重新生成类 (等效的操作可以是Maven具有相同的相应选项)

感谢 Micronaut CLI,我生成了三个 hello-world 项目来比较构建持续时间。以下是创建它们的命令:

mn create-app micronaut-maven-kotlin  --build maven  --lang kotlin
mn create-app micronaut-maven-java    --build maven  --lang java
mn create-app micronaut-gradle-kotlin --build gradle --lang kotlin
Run Code Online (Sandbox Code Playgroud)

在 Intellij 运行项目代码之前,我大致测量了构建过程的持续时间,结果如下:

  • Java + Maven = 无需等待
  • Kotlin + Gradle = 2.5 秒
  • Kotlin …

intellij-idea maven kotlin kapt micronaut

5
推荐指数
0
解决办法
456
查看次数