一般动作
登录
Wiki: BROPEN ▼: Document Index
»
Space: FAQ ▼: Document Index
»
Page: 工程太大了，Domain类比较多，有办法加快一下run-app的启动速度吗
搜索
zh
页面动作
导出 ▼: 以PDF格式导出 以RTF格式导出 以HTML格式导出
更多动作 ▼: 打印预览 察看源码
欢迎进入Wiki » FAQ » 工程太大了，Domain类比较多，有办法加快一下run-app的启动速度吗?

# 工程太大了，Domain类比较多，有办法加快一下run-app的启动速度吗?

在2014-03-20 14:48上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

2014.03.20：升级到4.0.3后，废弃下面的 smartupdate 配置。

如果数据源中配置 dbCreate 为 update，Grails每次运行是都会运行一下数据库schema update，如果Domain类比较多，每次启动自然会比较慢，除非手动将 DataSource 里的 dbCreate 清掉，但是改来改去总是一件比较罗嗦的事情。

BroToolkit中增加了一个定制的配置，只需要在 Config.groovy 中增加一行：

bropen.toolkit.datasource.schema.smartupdate = true

且当 dbCreate 设置为 update 时，启动时会自动判断，如果自上次启动一来没有 Domain 类被修改，则不自动运行 schema update。
在我们的某个工程中，大概有不到350个Domain类，启用该配置后，能节省大概 1/3 的启动时间（数据库性能一般）。
注：目前有个限制，暂不支持多数据源，即如果配置了多个数据源，则该配置无效。

当然，影响启动的因素比较多，数据库表结构更新只是其中一个因素而已，而且run-app是支持热加载的，在很大程度上会削弱启动速度导致的影响。

BTW：
我们也对Domain类的热加载进行了改造，默认情况下Grails会自动更新所有数据库表结构（至少我们正在使用的2.2.x版本还是这样），此时会导致工程假死。
而安装BroToolkit插件（版本 2+即可）后，只会更新相关连的Domain类的库表结构，开发效率自然也就提升了。

标签： grails dataSource BroToolkit
在2013-10-31 10:39上被李小翔创建

- 评论 （0）
- 附件 （0）
- 记录
- 信息

# 快速链接

- 首页
- 新闻动态
- FAQ

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号