Rumah > Java > javaTutorial > Mengapa PermGen Dihapuskan dalam JDK 8?

Mengapa PermGen Dihapuskan dalam JDK 8?

Susan Sarandon
Lepaskan: 2024-11-14 22:35:02
asal
711 orang telah melayarinya

Why Was PermGen Eliminated in JDK 8?

Penghapusan PermGen dalam JDK 8: Memahami Sebab

Dalam Java Development Kit (JDK) 8, konsep PermGen (Generasi Kekal) telah dikeluarkan. Apabila menjalankan Eclipse dalam versi ini, pengguna mungkin menghadapi mesej amaran yang menunjukkan bahawa pilihan MaxPermSize diabaikan. Pengalihan keluar ini didorong oleh beberapa kelemahan yang dikaitkan dengan PermGen, termasuk:

  • Saiz tetap pada permulaan, menjadikannya sukar untuk melaraskan secara dinamik.
  • Jenis Hotspot Dalaman sebagai objek Java, yang membawa kepada kerumitan dan ketidakcekapan.
  • Keperluan untuk iterator dan metadata khas semasa pengumpulan sampah penuh.
  • Penghadan dalam menyamakan kedudukan data kelas secara serentak dan di luar jeda GC.
  • Halangan kepada pengoptimuman masa hadapan yang bergantung pada Pembuangan PermGen.

Untuk menangani isu ini, konsep Metaspace telah diperkenalkan untuk menggantikan PermGen. Metaspace menyediakan kelebihan berikut:

  • Selaras dengan sifat Spesifikasi Bahasa Java untuk memadankan hayat kelas dengan pemuat kelas.
  • Menggunakan peruntukan linear dan menghapuskan penambakan individu, kecuali untuk senario tertentu.
  • Mengurangkan overhed pengumpulan sampah dan meningkatkan prestasi.

Metaspace boleh ditala menggunakan bendera -XX:MaxMetaspaceSize dan -XX:MetaspaceSize, membenarkan pentadbir menentukan saiz awal dan had maksimum . Secara lalai, Metaspace mempunyai saiz tanpa had, membolehkannya melaraskan secara dinamik berdasarkan permintaan aplikasi pada masa jalan.

Pengalihan keluar PermGen dan pengenalan Metaspace telah mendayakan pengoptimuman dan ciri lain dalam JDK 8 dan seterusnya, seperti perkongsian data kelas aplikasi, peningkatan koleksi muda dan pengurangan saiz metadata, akhirnya membawa kepada prestasi GC yang lebih baik dan kecekapan keseluruhan.

Atas ialah kandungan terperinci Mengapa PermGen Dihapuskan dalam JDK 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan