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

标签 visualvm oql

我的查询结果有数百万行。我已经修改了visualvm.conf

-J-DOQLController.limitResults=1000000

目前,作为一种解决方法,我运行查询,然后将结果复制并粘贴到一个文件中。然而,结果给我的内存带来了很大的压力。有没有办法跳过向 UI 显示结果,直接将结果流式传输到文件?

我的查询如下:

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

最佳答案

你可以试试这样的:

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

关于visualvm - 如何将 VisualVM OQL 结果直接保存到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376493/

相关文章:

java - VisualVM 结果不同于手动测量

java - 通过防火墙的 VisualVM - RMI 故障排除

intellij-idea - 无法在 Intellij 中启动 VisualVM 启动器插件

java - Visual VM 中的 RMI TCP Accept、Attach Listener 和 Signal Dispatcher 是什么?

salesforce - 分层 SOQL 查询

java - 有没有办法在mat中使用OQL获取无法访问的对象?

java - Java 1.6.0_24 中 'unique' 的 OQL 'jhat' 函数出现问题

java - 需要在 JVM EXCEPTION_ACCESS_VIOLATION 之后进行堆转储