【问题标题】:Will there be any performance improvement if I upgrade the grails version如果我升级 grails 版本会有任何性能提升吗
【发布时间】:2019-12-26 11:48:41
【问题描述】:

我有一个基于 grails 1.3.7 构建的 grails 应用程序。

  1. 我的应用程序非常慢,我正试图找出我的代码中的饥饿块。

  2. 另一方面,我在考虑升级到最新的 grails 版本是否会提高我的应用程序的性能。这对我的应用有什么好处吗?

  3. 只升级保持 grails 不变的插件会有帮助吗?

如果您知道我可以添加任何插件或调整来提高其性能,请提出建议。

谢谢。

【问题讨论】:

  • 没有灵丹妙药。您需要衡量是什么使应用程序变慢(定义“慢”的指标,然后找到最大的瓶颈并仅攻击它们)。也可以是您的数据库,您的提供者,星星的对齐方式。一个新的 grails 版本很可能会随机改进,但是例如可能使您能够使用@(Grails)CompileStatic——但要应用它,您需要知道在哪里。还可以考虑模块化您的应用程序或只是获得更快的机器。即使有更多关于你的情况的信息,我怀疑任何人都能够给出答案。
  • 感谢您的回复!要升级我的 grails 版本,我应该遵循一些程序还是像运行 grails 命令一样简单?

标签: grails


【解决方案1】:

一般来说,你需要记住一些事情。

  1. Grails 应用程序在 groovy 上运行,而 groovy 在最后返回一个在 jvm 上运行的 java 代码。所以总是会比纯java代码慢。

  2. java 代码和 groovy 代码所需的运行时之间存在巨大差异。例如 for 循环比 groovy 的每个方法都高效。

  3. 动态查找器和元编程会进一步降低 grails 应用程序的速度,因为所有方法和查找器都是在运行时创建的。

Grails vs Java comparision

  1. 为了加快您的应用程序的速度,请尝试使用@CompileStatic 注释,这可以在很大程度上加快您的应用程序的速度。这将禁用您的动态查找器和元编程。所以明智地使用它,并在你不需要的课程中使用它。您可以在方法级别和类级别使用它。但是要使用它,您需要升级到 grails 2.0 版本
  2. 您可以采取的其他措施是避免使用像 each 等 groovy 函数,而使用 java 对应函数,如 while、for 等

【讨论】:

  • 但是,如果我们避免动态查找器和 groovy 每个循环,我们不要错过我们选择它的圣杯之美!
  • GrailsCompileStaticgrails.org/doc/latest/guide/…;这也是一般建议,您应该找到瓶颈后应用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多