我部署了一個我創建的Grails應用程序(我製作的第一個應用程序),啓動時內存使用量約爲2 GB。 (Tomcat 6)Grails - 啓動內存/內存使用情況/域對象
該應用程序在4種類型之間維護大約133,000個域對象。大多數到DB的事務都是通過大約115,000個這些對象和正常的CRUD操作/文件導入和導出進行搜索。
經過多次使用後,我發現我的內存標記是3.3 GB。
首先 - 爲什麼啓動時內存使用量如此之高? Grails是否默認緩存內存中的域對象使用情況?
第二 - 我已經在應用程序的許多點處理了GORM清理,但內存使用率仍然很高(3.3GB)。 ORM層中是否存在導致事務緩存等問題?
感謝
--------------- 編輯 --------------------
測試:我刪除從數據庫中
啓動所有的域對象:514 MB
隨着對象:993 MB(我修剪基於數據源文件中的一些性能)
**數據源**
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"
}
}
}
所以你的域對象是平均3.7 KB?這很棒,很多。 –
對象包含大量數據(其中115,000個對象每個都有大約17個屬性)。這可能是一個設計問題,但我看不到一種方法來提取特定於域的屬性。 – user82302124