【发布时间】:2011-11-05 09:07:01
【问题描述】:
当我使用 NetBeans 运行下面提到的代码时,分配的堆大小图类似于锯齿形状。我附上了来自 JVisualVM 的屏幕截图,它以锯齿形显示了堆分配图。该程序是一个打印“Hello, World!”的简单无限循环。进入控制台。
public class HelloWorld {
public static void main(String a[]){
while(true) {
System.out.println("Hello, World!");
}
}
}
任何人都可以解释使用堆图形状背后的原因吗?
PS:即使我在不使用 NetBeans 的情况下运行它也会发生这种情况,因此它很可能与 NetBeans 无关...
【问题讨论】:
-
而且似乎相差很大……呃……3兆字节?这真的是真的吗?
-
您可以通过尝试其他垃圾收集器算法对此有所了解。请参阅此处了解信息:tikalk.com/java/…
-
@buch11:永远不要低估大量垃圾,即使是最微不足道的 Java 方法/API 也能生成。我已经使用 Java 完成了多线程科学计算,我可以告诉你有很多陷阱,这甚至都不好笑;)你必须意识到大多数 Java 程序员会很乐意使用像 Map
i> 并告诉您,如果它不是瓶颈,则没有任何问题。 Java 基本上是一个几乎每个人都会产生无数垃圾并认为:“垃圾收集器会处理它” 的世界。 Photoshop 没有用 Java 编写是有原因的 ;)
标签: java jvm memory-management heap-memory jvisualvm