我部署了一个我构建的 Grails 应用程序(我创建的第一个应用程序),该应用程序启动时的内存使用量约为 2 GB。(雄猫 6)
该应用程序维护 4 种类型之间的大约 133,000 个域对象。对数据库的大多数事务是通过大约 115,000 个对象和正常的 CRUD 操作/文件导入和导出进行搜索。
经过多次使用,我看到我的内存标记为 3.3 GB。
首先 - 为什么启动时内存使用率如此之高?Grails 默认会在内存中缓存域对象的使用吗?
第二 - 我已经在应用程序的多个点处理了 GORM 清理,但内存使用率仍然很高(3.3GB)。ORM 层中是否存在导致事务缓存等的内容?
谢谢
---------------编辑--------
测试:我从数据库中删除了所有域对象
启动:514 MB
带对象:993 MB(我根据 DataSource 文件调整了一些性能)
** 数据源 **
dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "xxx"
password = "xxx"
}
hibernate {
cache.use_second_level_cache = false
cache.use_query_cache = true
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost/mydb"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost/mydb"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost/mydb"
}
}
}