當我運行下面提到的代碼(使用netbeans)時,分配的堆大小以鋸齒形狀變化。我從jVisualVM附加捕獲,顯示鋸齒形狀中使用的堆圖。該程序是一個簡單的無限循環打印「大聲笑」n標準輸出。爲什麼鋸齒形圖?
class one{
static int i=0;
public static void main(String a[]){
while(i<10){
System.out.println("lol");
}
}
}
誰能解釋使用的堆的圖形的形狀背後的原因是什麼?
PS:此發生,即使我不使用NetBeans所以這是有點不相關的NetBeans的運行它...
而且似乎有所不同...呃... 3兆字節?這真的可以嗎? – Owen
您可以通過嘗試其他垃圾收集器算法來了解這一點。有關詳情,請參閱此處:http://www.tikalk.com/java/garbage-collection-serial-vs-parallel-vs-concurrent-mark-sweep – skaffman
@ buch11:永遠不要低估巨大的垃圾量,即使是最平凡的Java方法/ API可以生成。我已經完成了使用Java的多線程科學計算,並且我可以告訴你有很多的問題,它甚至不好笑;)你必須認識到大多數Java程序員會很樂意使用諸如* Map *之類的東西並告訴你如果它不是瓶頸,那就沒有問題。 Java基本上是一個幾乎每個人都會產生無數浪費的世界,並且認爲:*「垃圾回收器會照顧它」*。有一個原因,爲什麼Photoshop不是用Java編寫的;) –
SyntaxT3rr0r