问题描述
我想定期将通用Java应用程序的堆转储作为csv文件。假设我有一个程序
public class Test {
public static void main(String[] args) throws Exception {
// Code to be profiled
}
}
我想在运行程序后定期检查堆转储并生成如下的csv
Time Committed size Free size Used size
0.0 251392000 235881000 15511000
1.0 456704000 264288000 192416000
2.0 1024000000 756641000 267359000
3.01 1035776000 217595000 818181000
4.01 1494528000 153111000 1341417000
5.02 1444352000 1235099000 209253000
6.02 1546240000 1185698000 360542000
这看起来像是提供给visualvm / jprofiler等的信息,以便他们生成内存转储图。
我可以很容易地使用带有jcontroller和jpexport的jprofiler(通过cmd行和jprofiler api)以编程方式实现它,但是我还无法弄清楚如何使用其他类似工具(例如visualvm,jmap等)来做到这一点。
我正在寻找的是一种程序化的方法来配置Java程序(此处为Test.java),而完全不涉及GUI。还有一个类似的问题here,但建议的解决方案是针对visualvm的Tracer插件,它将再次涉及使用GUI。我找到的最接近的解决方案是像给定示例here中那样使用JMX,但我无法使其工作。
有没有办法为我实现这一目标?附带说明一下,我在Mac上使用Java SE 8。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)