2017-04-12 78 views
0

我的查詢結果爲數百萬行。我已經修改visualvm.conf如何將VisualVM OQL結果直接保存到文件中?

-J-DOQLController.limitResults=1000000 

目前,作爲一種解決方法我運行查詢,並將結果複製並粘貼到文件中。但是,結果給我的記憶帶來了很大的壓力。是否有跳過向用戶界面顯示結果,並直接將結果直接流到一個文件?

我的查詢是這樣的:

select { obj1: busObj.obj1, ... , objN: busObj.objN } 
    from com.my.BusinessObject busObj 

回答

0

你可以嘗試這樣的:

writeToFile() 

function writeToFile() { 
    var objects = heap.objects("com.my.BusinessObject", false); 
    var FileWriterClass=Java.type("java.io.FileWriter"); 
    var writer = new FileWriterClass("/tmp/out.txt"); 

    while (objects.hasMoreElements()) { 
     var busObj = objects.nextElement(); 

     writer.write("obj1: "+busObj.obj1+", obj2: "+busObj.obj2+"\n"); 
    } 
    writer.close(); 
    return { Result: "done" }; 
} 
相關問題