특성의 많은 도메인 개체의 많은,하지만 더 큰 문제이다 :Grails의 및 최대 절전 모드 - 내가 또 다른 질문에서 해결 문제가 생겼어요
기본 Grails의 봄은 /에서 최대 절전 모드했다 STS를 사용하여 프로젝트 표지. 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"
}
}
}
나는 등 파일을 시작하는 미 조정 (부트 스트랩, 소스/최대 절전 모드, 설정, 모든 종류의 시도 때문에 나를 죽이고있다 - 내가 할 수있는 ' 심지어 내가 시도한 모든 다른 것을 기억하지 마십시오).
* 편집 * 내 개체로 eager fetching을 사용하지 않습니다. 게으른 기본값.
SQL 추적을 사용하는 것이 좋습니다! – loteq
트레이스에 대한 우수한 팁. 나는 그것을 시도 할 것이다. – user82302124