別の質問で対処した問題がありますが、これはより大きな質問です。
STSを使用するデフォルトのGrailsプロジェクトには、Spring/Hibernateが隠されています。Grailsアプリケーションがロードされると、100,000以上のドメインオブジェクトのデータベースがメモリにロードされているように見えます。これがHiberate/ORMレイヤーにあるかどうかはわかりませんが、
Pre DB domain object load (400 MB start up)
Post DB domain object load (900 MB start up)
これには、ブートストラップデータはありません。箱から出してすぐにアプリのパフォーマンスはありません。クリーンなスタートアップと私のドメインオブジェクト。
モニターは使えますが、同じ答えが返ってきます。これは構成のようです。これらのオブジェクトをメモリにロードしないようにGrails内でHibernateを設定するにはどうすればよいですか?
これはdatasource.groovyファイルです:
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"
}
}
}
私はファイルを起動するためにあらゆる種類の微調整を試みたので、これは私を殺しています(ブートストラップ、データソース/休止状態、構成など-私が試したすべての異なることを思い出すことさえできません)。
*編集* オブジェクトで熱心なフェッチを使用していません。ただデフォルトの怠惰です。