帮助!我正在将一个大型 ruby 应用程序移植到 Grails - 但我的应用程序的 Grails 启动需要 2 分钟以上。
我已经将 dbCreate 设置为“读取”我已经确保我的高端双处理器桌面 windows 框为 Grails 提供所需的 RAM (1 Gig)。我没有安装插件。我有 170 个曾经是 ruby 类的域类。
当它启动时,它会打印出“Running Grails App..”行,然后挂起很长时间,然后打印出“Server running”行。
我刚刚做了一些事情,将我所有的 id 迁移到 bigints。这似乎使问题更加严重。现在启动大约需要 10 分钟。
我是 grails 的新手,请您给我一些关于在启动时记录事件的内容和位置的更多详细信息吗?至于对 vm 进行分析,我已经有几年没有做很多 Java 了。您推荐什么作为现在使用的最佳分析工具?
我还能做些什么来加快 Grails 的启动速度?
最佳答案
不幸的是,我不确定除了你已经做过的事情之外还能做太多事情。如您所知,启动时会发生很多事情,包括所有插件解析/加载、向域对象添加动态方法以及 Groovy 的整体动态特性。
我不确定您使用的是哪个版本,但我要求您在 1.2 中启动时关闭依赖项检查,因为这也会增加启动时间。
我意识到上面没有太大帮助,所以也许这将是:我将我的应用程序分成几个插件。一个用于域对象,一个用于绘图功能,一个用于 excel 导入,另一个用于我需要的一些 UI 结构。我没有这样做只是因为启动时间很慢,但好处是我可以在将所有内容集成在一起之前单独测试系统的各个部分。
我即将添加一个涉及至少 10 个新域对象的新功能,我首先在一个单独的插件中开发它们,方法是为它们必须与核心应用程序交互的少数对象设置 stub 。这让我既可以减少启动时间,也可以更好地隔离我的代码。
因此,如果您可以选择,请尝试将事物分开,以便您可以单独处理它们,这将在一定程度上缓解您的问题。在让您的团队单独处理较小的组件、更好的模块化等方面,可能还有其他好处。
希望这会有所帮助。
关于Grails 启动很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1887841/