java - 为什么JVM中新生代有两个Survivor区?
伊谢尔伦
伊谢尔伦 2017-04-18 09:58:39
0
4
862

为什么JVM中新生代有两个Survivor区?

如题。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(4)
伊谢尔伦

Secara peribadi, saya merasakan bahawa S0 dan S1 wujud untuk meningkatkan prestasi.

Penggunaan ruang yang terselamat:

Pada bila-bila masa, sentiasa ada satu ruang yang masih hidup yang kosong Semasa koleksi penyalinan seterusnya, eden dan objek hidup dalam ruang mangsa yang lain akan disalin ke ruang ini.
Objek hidup disalin ke sana ke mari antara dua ruang yang terselamat sehingga objek itu cukup tua dan boleh diletakkan dalam generasi tenured (salin masa lalu)

Oleh kerana objek mati perlu dibersihkan semasa pengumpulan sampah Jika terdapat hanya satu kawasan yang terselamat, maka objek mati di kawasan yang terselamat ini akan menghasilkan serpihan memori selepas dibersihkan untuk mengelakkan pemecahan memori, objek hidup mesti dialihkan dan anda akan kehilangan prestasi.

Jika terdapat dua kawasan yang terselamat, mengikut kenyataan di atas, tidak akan ada masalah pemecahan memori.

Jawapan SO ada di sini: http://stackoverflow.com/ques...

大家讲道理

Generasi baharu menggunakan 复制收集算法, dan dua kawasan Survivor akan bekerjasama dengan 复制收集算法.
Saya telah memperkenalkan masalah jenis ini secara terperinci dalam salah satu blog saya Jika anda berminat, anda boleh melihat.

Peter_Zhu

Selepas setiap GC, kedua-dua Survivors akan bertukar kedudukan
Satu-satunya perkara yang saya tahu setakat ini ialah bagaimana untuk kehilangannya

迷茫

Digunakan untuk menghalang penjanaan serpihan, ini adalah sistem buddy legenda.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan