Grails 4 的文档提到了由于 micronaut 父上下文(此处)而在性能和启动时间方面的改进。
有没有人衡量从 Grails 3 到 Grails 4 的改进?Grails 4 在启动时间、性能和内存消耗方面与 Grails 3 相比如何?
为记录写一个答案。我最近升级了一个相当大的 grails 3 应用程序(约 150 个域类),并注意到启动时间减少了大约 30%,应用程序的内存占用减少了 20-30%。Grails 4 中的热重启确实很烦人,即使是很小的更改也会浪费大量时间。我真的很怀念grails 3的热插拔。除此之外,它是值得的。
本文给出了 grails 3.3.9 和 4.0 之间的一些 grails 性能指标比较。
从 3.3.14 升级到 4.0.12 后,我看到 CPU 使用率增加了 20%,并且在生产中请求处理时间。可以是一些非最优设置。但是通过简单的框架升级,我得到了性能损失(每天 150k 独立访问者,6Gb 内存)。
同时,应用程序使用的内存减少了 30%。
更新:
具有继承的类的休眠二级缓存损坏导致的性能问题 https://github.com/grails/grails-data-mapping/issues/1594
更新 1:
修复缓存问题后,我看到 CPU 使用率有所改善。与 grails 3.3.14 相比,Grails4 使用的 CPU 减少了大约 5-10%
我认为,建议升级到 grails 4