私が構築した Grails アプリケーション (私が作成した最初のアプリケーション) をデプロイしました。このアプリケーションは、約 2 GB のメモリ使用量で起動します。(トムキャット6)
アプリケーションは、4 つのタイプの間で約 133,000 のドメイン オブジェクトを維持します。DB へのほとんどのトランザクションは、約 115,000 個のオブジェクトの検索と、通常の CRUD 操作/ファイルのインポートとエクスポートです。
何度も使用した後、メモリ スタンプが 3.3 GB であることがわかりました。
最初に - 起動時のメモリ使用量が非常に多いのはなぜですか? Grails はデフォルトでドメイン オブジェクトの使用状況をメモリにキャッシュしますか?
2 つ目 - アプリケーションの多くのポイントで GORM クリーンアップを処理しましたが、メモリ使用量は依然として高い (3.3GB) です。トランザクションのキャッシュなどを引き起こす ORM レイヤーに何かありますか?
ありがとう
---------------編集--------------------
テスト: データベースからすべてのドメイン オブジェクトを削除しました
起動時:514MB
オブジェクトあり: 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"
}
}
}