我正在编写单元测试,以找出MyClass实例占用了多少内存。我似乎对随机混乱的垃圾回收器无能为力,它告诉我我的MyClass[] myinstances=new MyClass[10000];
占用了负内存,所以我决定只启动两个新的JVM进程,它们只是启动一个包含main方法的类,该方法实例化了一个巨大的数组并挂起。
我知道我可以用Runtime.getRuntime.exec("java my.package.SomeClassWithMainMethod");
启动一个新的JVM。
所以我的问题是:我如何获得关于我启动的JVM占用的内存量的信息?
Thx,你们说了算
发布于 2012-02-10 06:33:27
您可以使用JVisualVM或JConsole,它们从1.6开始就包含在JDK中
发布于 2012-02-10 05:57:34
我认为你最好使用一个分析器,jvisualvm可能已经足够好了,它是你的Java发行版附带的。请看这个问题:How to determine the actual memory usage of a data structure
https://stackoverflow.com/questions/9219175
复制相似问题