以下のコードを実行すると(netbeansを使用して)、割り当てられたヒープサイズは鋸歯状に変化します。使用したヒープグラフを鋸歯状に表示するjVisualVMからのキャプチャを添付しています。プログラムは単純な無限ループ印刷です"lol"は標準出力です。なぜ鋸歯状のグラフですか?
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