如何在没有实现JVM的情况下分析Java内存使用情况(Java 1.1.8)

时间:2010-06-30 12:45:08

标签: java memory-leaks

我目前正在尝试确定在异乎寻常的平台上运行的Java应用程序中高内存使用率的原因,在这个平台上我知道没有经过检测的JVM。

我有应用程序的源代码,可以为测试目的更改源代码。

如何在这些条件下调试内存使用情况?

如果需要更多信息,我很乐意提供。我只是有点迷失试图使用这么老的jvm而没有太多工具可言。

3 个答案:

答案 0 :(得分:2)

如果我在你的鞋子里,我会接受它:

  1. 找到您知道的功能区域 需要注意。
  2. 制作代码的备份副本
  3. 开始插入print语句 有开始和结束时间
  4. 看看需要花费大量时间的事情 缩小范围。

答案 1 :(得分:1)

对于Java 5及更高版本,可以使用Java代理完成此操作。对于早期版本(包括1.1.8),您必须加载本机代理才能执行此操作。如果您无法检测代码,则必须自己完成所需的工作。

获得大部分方法的一种方法是使用兼容Java 1.1的log4j版本,它允许您基本上写出带有时间戳的字符串。然后可以按摩它来提取你想知道的任何答案。

答案 2 :(得分:1)

如果你需要内存分析 - 我建议不要这样做 - 你可以开始将对象序列化到磁盘,然后测量磁盘大小作为内存大小的粗略估计。

如果你真的想深入了解你通常不应该去的地方,试试sun.misc包,虽然我不知道在1.1.x中有多少。