gpt4 book ai didi

grails - 更改 Grails 的 Groovy 版本

转载 作者:行者123 更新时间:2023-12-04 15:48:11 25 4
gpt4 key购买 nike

如何将 Grails 1.3.7 使用的 groovy 版本更改为 groovy 1.7.9?

我在 Grails 1.3.7 应用程序中遇到了这个问题,其中 Quartz 进程每分钟实例化大约 500 个新对象,如下所示:

class Foo{
Bar bar
Date d = new Date()
int v
}

def f = new Foo(bar:b, v:value)

我观察到的是,每次运行都需要更长的时间。起初,它需要几纳秒,但是当应用程序因永久代内存不足错误而崩溃时,这个过程有时需要超过 10 秒……来实例化一个对象!

我进行了一些堆转储,发现 CallSiteClassLoader 正在从先前设置的对象中占用大量内存。看完这篇 thread我决定直接更改我的 WAR 中的 groovy jar。现在应用程序运行正常,而且在几次堆转储之后,似乎没有内存泄漏。

但是我生成的每个 WAR 都会随 groovy 1.7.7 一起出现,我必须手动更改它。

谢谢!

最佳答案

您可以取消注释 mavenCentral() (在存储库下)并添加依赖项

compile 'org.codehaus.groovy:groovy-all:1.7.9'

(在依赖项下)在 BuildConfig.groovy 中。

不知道这个有没有推荐。至少该构建会像您现在手动执行的那样使用 groovy 1.7.9 打包您的应用程序。 grails run-app我猜仍然会使用 1.7.7,但这可能不是问题,因为您可能会在开发过程中遇到 permgen 问题之前重新启动。

我选择继续使用 Grails 1.3.6,直到带有 Groovy 1.7.9 或更高版本的 Grails 版本发布。

关于grails - 更改 Grails 的 Groovy 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5276323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com