java - 有谁知道查看 Java 应用程序内存的应用程序?或者有一些简单的方法来创建一个应用程序来做这种事情?在 C# 中

标签 java memory heap-memory

我一直看到原生 Windows 应用程序的内存查看器,但 Java 应用程序在 Java 虚拟机的堆中运行。

那么我们如何查看正在运行的 Java 应用程序的内存内部,我们如何查看堆栈中的内容。

是否有任何应用程序可以监视 Java 应用程序内存 是否可以编写一个应用程序来这样做?在 Visual C# 中。

感谢您的帮助。

最佳答案

实际上可以通过堆转储查看 Java 内存。 您将遇到的几乎每个 JVM 都能够执行它们,并且有可用的程序来分析它们。开始编写处理堆转储的程序的一个好地方可能是查看其中一个程序的代码......

这个博客似乎有一些关于这个主题的信息: http://javaworks.wordpress.com/2009/12/03/jvm-heap-dumps-generation-and-analysis/

这是 Oracle 的 Java 堆分析工具: http://download.oracle.com/javase/6/docs/technotes/tools/share/jhat.html

编辑:仅供引用,可以假设堆栈中的内容不多。原语大概分配在那里(考虑到缺少 new),但对象总是分配在堆上。一个有争议的异常(exception)是 Java HotSpot VM,我听说它确实在堆栈上分配一些对象以提高性能。我想你可能是说堆。 ^__^

关于java - 有谁知道查看 Java 应用程序内存的应用程序?或者有一些简单的方法来创建一个应用程序来做这种事情?在 C# 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7294629/

相关文章:

Go:内存问题

java - 特定于线程的堆分配

java - 在hadoop中reduce后处理数据

java - 如何切换到 Intellij 中的另一个颠覆分支?

Java 将一个 BufferedImage 与另一个进行比较

python - sys.getsizeof() 值不会随着浮点值的增加而增加

java - 实现状态模式时将键绑定(bind)应用于状态转换

java内存不足然后退出

内存中异常的 Java 大小

c - 如何从函数修改堆指针