我正在使用 VisualVm 来分析在 Tomcat 中运行的 Web 应用程序。Tomcat 不断因内存不足错误而崩溃,所以我试图找出我的应用程序中是什么导致了它。当我从 VisualVm 运行内存分析器时,看起来大部分内存都被 String/Char[] 占用了,但除非我能找出这些字符串的更高级别的容器,否则知识对我没有什么好处。在做研究时,我发现了 OQL,rsizeof()
所以我可以,SELECT rsizeof(o) FROM instanceof my.package.class o
但我不知道我需要哪个类,所以我真的很想能够运行类似的东西,SELECT it.name, rsizeof(o) FROM instanceof Filter(Heap.classes(), "/my.package./(it.name)");
但这不起作用。
那么什么是 OQL?理想情况下,我想限制在前 10 名左右,并按大小排序。