[英]Memory Leak in Grails with MongoDB
使用MongoDB在Grails中保存或更新多個對象時,我發現了一個奇怪的問題。 目前我正在使用Grails 2.2.3和MongoDB插件1.3.0。
問題似乎是當我手動調用GC時,MiUsuario的實例從不是GC。 在我們的主應用程序中,我們不進行批量更新,但在進行負載測試時(使用JMeter並使用Java VisualVM監視JVM),此問題會導致內存填充並且Tomcat停止響應。
我已經創建了一個小的新應用程序來顯示問題。
一個簡單的域對象:
class MiUsuario {
ObjectId id
String nickName
}
我的控制器:
import pruebasrendimiento.Prueba
class MiUsuarioController {
def doLogin(String privateKey, String id){
MiUsuario user = MiUsuario.get(id)
user.nickName = new Random().nextInt().toString()
user.save(failOnError:true)
render 'ok'
}
}
我的BuildConfig(只是依賴項和插件部分):
dependencies {
}
plugins {
// runtime ":hibernate:$grailsVersion"
runtime ":jquery:1.8.3"
runtime ":resources:1.2"
build ":tomcat:$grailsVersion"
// runtime ":database-migration:1.3.2"
// compile ':cache:1.0.1'
runtime ":mongodb:1.3.0"
}
我也嘗試了很久以前Burt所說的內容( http://burtbeckwith.com/blog/?p=73 ),但DomainClassGrailsPlugin.PROPERTY_INSTANCE_MAP.get()。clear()沒有任何區別。 在該頁面中說的另一個選項RequestContextHolder.resetRequestAttributes()給了我一個例外。
我有類似的問題,它解決了升級到grails 2.3.1。 試試吧。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.