我目前正在尝试确定在异乎寻常的平台上运行的Java应用程序中高内存使用率的原因,在这个平台上我知道没有经过检测的JVM。
我有应用程序的源代码,可以为测试目的更改源代码。
如何在这些条件下调试内存使用情况?
如果需要更多信息,我很乐意提供。我只是有点迷失试图使用这么老的jvm而没有太多工具可言。
答案 0 :(得分:2)
如果我在你的鞋子里,我会接受它:
答案 1 :(得分:1)
对于Java 5及更高版本,可以使用Java代理完成此操作。对于早期版本(包括1.1.8),您必须加载本机代理才能执行此操作。如果您无法检测代码,则必须自己完成所需的工作。
获得大部分方法的一种方法是使用兼容Java 1.1的log4j版本,它允许您基本上写出带有时间戳的字符串。然后可以按摩它来提取你想知道的任何答案。
答案 2 :(得分:1)
如果你需要内存分析 - 我建议不要这样做 - 你可以开始将对象序列化到磁盘,然后测量磁盘大小作为内存大小的粗略估计。
如果你真的想深入了解你通常不应该去的地方,试试sun.misc包,虽然我不知道在1.1.x中有多少。