cari

Rumah  >  Soal Jawab  >  teks badan

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

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

如题。

伊谢尔伦伊谢尔伦2826 hari yang lalu871

membalas semua(4)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:00:39

    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...

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:00:39

    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.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:00:39

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

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:00:39

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

    balas
    0
  • Batalbalas