簡體   English   中英

使用MongoDB在Grails中泄漏內存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM