很多域=内存使用量很大?

时间:2009-07-20 17:10:05

标签: hibernate grails

我想知道,例如,我的项目中有大约80个域,是否意味着当我运行项目时80个域将被加载到内存中,或者当我需要该域时它将被加载。 。

似乎我在一个项目中有很多域,我必须禁用自动编译并增加perm gen空间。

有什么解决方案可以在我需要访问这些域时加载吗? 并非所有域名都会被使用...有时它只是一个小域名,几乎从未被用户触及过某些事情(即特殊情况)

我现在正在使用grails 1.1.1并且必须禁用域的自动编译,否则它将卡住并耗尽内存/内存gen空间

2 个答案:

答案 0 :(得分:2)

Grails由Hibernate支持,Hibernate确实需要在启动时加载配置中的每个域类,因此不会只加载域的部分。

增加PermGen是一件很正常的事情,尤其是在开发中,因为默认情况下只有64mb,当grails重新编译并重新启动应用程序时,类文件无法轻松卸载。

从war文件运行时,您是否观察到类似的内存使用情况?

答案 1 :(得分:0)

在开发模式下运行时是否遇到此问题?如果是这样,您可以尝试将开发模式数据源从内存HSQLDB数据库更改为基于文件的HSQLDB数据库。您可以在grails-app / conf / DataSource.groovy

中找到需要编辑的文件