如何将VisualVM OQL结果直接保存到文件中?

时间:2017-04-12 17:57:02

标签: visualvm oql

我的查询导致数百万行。我已经修改了visualvm.conf

-J-DOQLController.limitResults=1000000

目前,作为一种解决方法,我运行查询,并将结果复制并粘贴到文件中。然而,结果给我的记忆带来了很大的压力。无论如何都要跳过将结果显示到UI,并直接将结果流式传输到文件?

我的查询如下:

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

1 个答案:

答案 0 :(得分:1)

您可以尝试以下内容:

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" };
}