我使用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那样有一些现实的编译时间,我将非常感激!
Kotlin协程允许通过返回Deferred值来执行非阻塞代码.这对于在使用阻塞方法(例如来自库)时制作非阻塞代码非常有用.
Spring 5允许使用Mono和Flux进入框架.我看到的最大兴趣是能够序列化这两种类型的实例,并在有人调用控制器端点时将其作为响应发送回来.
Spring 5的一个重点是对Kotlin(路由器,bean声明......)有一个特定的支持,但是我找不到关于Kotlin协同程序和Spring 5反应类型之间可能的相互作用的信息.
有没有办法结合这些功能的优势?
Deferred成Mono/ Flux?Deferred响应类型的Spring控制器方法?如果不是,在哪种情况下,如果我们有Spring 5反应类型,协程是否有意义?
我已经开始使用Kotlin和Maven开发 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 运行项目代码之前,我大致测量了构建过程的持续时间,结果如下: