forked from oracle/graal
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHeapQuery.java
More file actions
27 lines (25 loc) · 995 Bytes
/
HeapQuery.java
File metadata and controls
27 lines (25 loc) · 995 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import org.graalvm.visualvm.lib.jfluid.heap.Heap;
import org.graalvm.visualvm.lib.jfluid.heap.HeapFactory;
import org.graalvm.visualvm.lib.profiler.oql.engine.api.OQLEngine;
public class HeapQuery {
public static void main(String... args) throws Exception {
final File file = new File(args[0]);
if (!file.exists()) {
throw new IOException("Cannot find " + file);
}
Heap heap = HeapFactory.createHeap(file);
System.setProperty("polyglot.js.nashorn-compat", "true");
final OQLEngine eng = new OQLEngine(heap);
final String script;
if (args[1].equals("-e")) {
script = args[2];
} else {
script = new String(Files.readAllBytes(new File(args[1]).toPath()), StandardCharsets.UTF_8);
}
eng.executeQuery(script, OQLEngine.ObjectVisitor.DEFAULT);
}
}