Rumah  >  Artikel  >  Java  >  Apa yang Menggantikan PermGen dalam JDK 8 dan Bagaimana Ia Berfungsi?

Apa yang Menggantikan PermGen dalam JDK 8 dan Bagaimana Ia Berfungsi?

Susan Sarandon
Susan Sarandonasal
2024-11-19 01:04:02662semak imbas

What Replaced PermGen in JDK 8 and How Does It Work?

Menghapuskan PermGen dalam JDK 8

Setelah menaik taraf kepada JDK 8, anda mungkin menghadapi mesej amaran semasa cuba melancarkan Eclipse. Amaran ini menunjukkan bahawa pilihan "MaxPermSize" Java Virtual Machine (JVM) diabaikan kerana pengalihan keluarnya dalam JDK 8.

Sebab untuk Mengabaikan "MaxPermSize"

Ruang Generasi Kekal (PermGen), yang diuruskan oleh pilihan "MaxPermSize", telah dialih keluar daripada HotSpot dalam JDK 8. Ini disebabkan terutamanya oleh beberapa kelemahan:

  • Saiz tetap pada permulaan, menjadikannya sukar untuk melaraskan.
  • Legap dan ditaip lemah, membawa kepada cabaran penyahpepijatan.
  • Peningkatan masa depan yang terhad disebabkan kekangannya.

MetaSpace: Penggantian untuk PermGen

PermGen telah digantikan oleh Metaspace, ruang baharu yang menangani kelemahan ini. Metaspace menawarkan beberapa kelebihan:

  • Kawasan storan khusus pemuat kelas, memudahkan peruntukan.
  • Peruntukan linear dan tiada penambakan individu, meningkatkan kecekapan.
  • Tiada pengimbasan GC atau pemadatan, mengurangkan overhed.
  • Saiz lalai tanpa had, mengelakkan potensi kekangan memori.

Penalaan Metaspace

Manakala saiz maksimum Metaspace biasanya tidak terhad , anda boleh menetapkannya menggunakan bendera "-XX:MaxMetaspaceSize". Selain itu, "-XX:MetaspaceSize" mentakrifkan saiz awalnya. Jika tidak dinyatakan, Metaspace akan melaraskan secara dinamik berdasarkan permintaan masa jalan.

Kesimpulannya, penghapusan PermGen dan pengenalan Metaspace dalam JDK 8 telah menghasilkan prestasi GC yang lebih baik dan pengurusan masa jalan yang dipermudahkan. Pembangun harus sedar tentang penamatan pilihan "MaxPermSize" dan implikasinya terhadap aplikasi mereka.

Atas ialah kandungan terperinci Apa yang Menggantikan PermGen dalam JDK 8 dan Bagaimana Ia Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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