繁体   English   中英

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

[英]How can I profile Java memory usage without an instumented JVM (Java 1.1.8)

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

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

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

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

如果我穿上你的鞋子,我会接近它:

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM