Rumah  >  Artikel  >  Java  >  Jenis Pengumpul Sampah di Jawa

Jenis Pengumpul Sampah di Jawa

PHPz
PHPzasal
2024-08-30 15:54:06523semak imbas

Jenis pengumpul sampah Java menentukan jenis yang kami gunakan untuk membangunkan program. Pengumpulan sampah adalah ciri penting Java. Di Jawa, kami menggunakan kutipan sampah untuk mengosongkan memori yang tidak lagi digunakan. Pengumpul sampah menjejaki semua objek yang masih digunakan dan menandai objek yang lain sebagai sampah. Pengumpul sampah menggunakan algoritma sapu dan tanda.

Di Jawa, kutipan sampah hanyalah pengurusan ingatan; kami melakukan perkara yang sama dengan menggunakan JVM. Dengan menggunakan kutipan sampah, kita tidak perlu mengendalikan peruntukan dan deallokasi sesuatu objek dengan menggunakan pengaturcara. Dalam aplikasi java memperuntukkan dan membebaskan memori dengan menggunakan sistem pengendalian, dan kami menyediakan perkara yang sama daripada aplikasi dan pengumpulan sampah pembolehubah baharu.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Java menawarkan berbilang pengumpul sampah, yang memenuhi keperluan aplikasi yang berbeza. Memilih pemungut sampah yang sesuai untuk aplikasi kami adalah sangat penting untuk meningkatkan prestasi aplikasi kami. Java menawarkan pelbagai jenis pengumpul sampah untuk memenuhi keperluan aplikasi.

Jenis Pengumpul Sampah di Jawa

Pengambilan Utama

  • GC selari di Jawa dikenali sebagai pemungut sampah lalai yang digunakan dalam JVM. Kerja GC selari adalah sama seperti GC bersiri.
  • Pengumpul sampah bersiri dipadankan dengan persekitaran satu benang. Ia menggunakan satu urutan untuk GC.

Jenis Pemungut Sampah Javas

Di bawah adalah jenis pengumpul sampah Java.

Kami menggunakan jenis tersebut mengikut keperluan kami seperti berikut;

  • Pengumpul sampah bersiri
  • Pengumpul sampah selari
  • Pengumpul sampah sapu tanda serentak
  • Pengumpul sampah G1
  • Pengumpul sampah Epsilon
  • Z pengumpul sampah
  • Pemungut sampah Shenandoah

Kerja dan prestasi setiap pemungut sampah adalah berbeza; ia mengandungi kebaikan dan keburukan mereka sendiri. Java membolehkan kami memilih mana-mana pemungut sampah yang digunakan oleh JVM. Pada masa pemilihan pemungut sampah, kita perlu meluluskan hujah JVM.

1. Pemungut Sampah Bersiri

Pengumpul sampah ini berfungsi sambil memegang semua benang aplikasi. Oleh itu, kita boleh mengatakan bahawa benang permohonan kita membeku dengan menggunakan proses pemungut sampah bersiri; proses ini dikenali sebagai dunia dan menghentikan peristiwa. Untuk mengakui penggunaan pengumpul sampah bersiri dalam persekitaran pelayan, kami boleh menggunakan perkara yang sama dalam program mudah.

Untuk menggunakan pengumpul sampah bersiri, kita perlu melaksanakan –XX:+UseSerialGC ke dalam hujah JVM. Kami boleh menentukan perkara ini semasa menggunakan pemungut sampah bersiri.

2. Pemungut Sampah Selari

Satu-satunya perbezaan antara GC selari dan bersiri ialah GC selari menggunakan berbilang benang, manakala GC bersiri hanya menggunakan satu utas. Kami menggunakan GC selari untuk mempercepatkan pemprosesan aplikasi kami; ini juga dikenali sebagai pengumpul pemprosesan.

Untuk menggunakan pengumpul sampah selari, kita perlu menggunakan –XX:+UseParallelGC dalam hujah JVM. Pengumpul sampah selari dan bersiri adalah penting semasa membangunkan aplikasi Java.

3. Pengumpul Sampah CMS

Dalam CMS GC, kami menggunakan berbilang benang, yang digunakan untuk timbunan dan pengimbasan, yang akan menandakan pengusiran kejadian yang ditanda. GC jenis ini tidak membekukan utas aplikasi pada masa GC. Benang pemungut sampah sedang dilaksanakan serentak dengan urutan aplikasi.

Menggunakan pengumpul sampah ini, kami boleh menggunakan berbilang CPU untuk pemprosesan aplikasi kami yang lebih baik. Kami menggunakan CMS GC jika kami mengandungi lebih banyak CPU untuk digunakan. Untuk menggunakan pengumpul sampah CMS, kita perlu menggunakan –XX:+UseParNewGC ke dalam hujah JVM. Kami menggunakan hujah mesin maya Java ini apabila menggunakan pengumpul sampah ini.

4. G1 Pemungut Sampah

Pengumpul sampah G1 digunakan jika kita mengandungi lebih daripada 4 GB memori. GC ini membahagikan timbunan kepada ketulan saiz yang sama dan melakukan kutipan sampah selari pada keutamaan yang sama. Pengumpul sampah G1 menunjukkan fasa penandaan global.

Semasa melengkapkan fasa penandaan, pengumpul sampah ini mengumpul maklumat yang mengandungi objek pemungut sampah. Untuk menggunakan pengumpul sampah G1, kita perlu menggunakan –XX:+UseG1GC ke dalam hujah JVM.

5. Pengumpul Sampah Epsilon

Ini adalah pemungut sampah pasif atau tidak beroperasi. Pengumpul sampah ini memperuntukkan memori untuk aplikasi, tetapi ia tidak akan mengumpul objek yang tidak digunakan. Apabila aplikasi meletihkan timbunan, JVM akan ditutup, jadi kita boleh mengatakan bahawa GC ini membenarkan aplikasi hilang ingatan atau ranap sistem.

Tujuan utama pengutip sampah ini adalah untuk mengurus dan mengukur prestasi aplikasi. Pengumpul sampah ini mengandungi program kompleks yang sedang berjalan di dalam program.

6. Z Pemungut Sampah

Pengumpul sampah ini melakukan semua kerja serentak tanpa menghentikan pelaksanaan aplikasi kami. Pengumpul sampah ini mengendalikan timbunan yang mengandungi saiz berbilang terabait.

Pemungut sampah jenis ini melakukan kitarannya menjadi benang. Ia akan menjeda aplikasinya dalam masa purata 1 MS.

7. Pemungut Sampah Shenandoah

Pengumpul sampah jenis ini menggunakan kawasan memori untuk mengurus objek yang tidak lagi digunakan dan yang sedia untuk dimampatkan. Pengumpul sampah ini menambahkan penuding pemajuan pada setiap timbunan, yang menggunakan akses kawalan pada objek yang ditentukan.

Hujah JVM

Di bawah ialah hujah untuk mesin maya Java. Kami menggunakan hujah tersebut dalam pemungut sampah seperti berikut.

  • –XX:ParallelGCThreads=: Argumen ini mengawal nombor urutan GC.
  • –XX:MaxGCPauseMillis=: Argumen ini menentukan masa jeda maksimum.
  • –XX:GCTimeRatio=: Argumen ini menentukan sasaran pemprosesan maksimum.
  • –XX:+UseSerialGC: Argumen ini menentukan pengumpul sampah bersiri.
  • –XX:+UseParallelGC: Argumen ini menentukan pengumpul sampah selari.
  • –XX:+UseG1GC: Argumen ini menentukan pengumpul sampah G1.
  • –XX:+UseConcMarkSweepGC: Argumen ini menentukan pengumpul sampah CMS.
  • –XX:ParallelCMSThreads: Argumen ini menentukan pengumpul CMS dan bilangan utas yang kami gunakan.
  • -XX:InitiatingHeapOccupancyPercent=: Argumen ini mengawal penghunian timbunan semasa memulakan kitaran serentak.
  • -XX:G1MixedGCLiveThresholdPercent=: Apabila objek hidup wujud di rantau lama, argumen ini mengecualikan nilainya daripada objek GC.
  • -XX:G1HeapWastePercent=: Argumen ini menentukan bilangan kawasan yang dibenarkan untuk dibazirkan.

Kesimpulan

Java menawarkan pelbagai pemungut sampah untuk memenuhi keperluan pelbagai aplikasi. Memilih pemungut sampah yang betul untuk aplikasi kami untuk meningkatkan prestasinya adalah penting. Jenis java garbage collector mentakrifkan jenis garbage collector yang akan kami gunakan semasa membangunkan program tersebut. Java mempunyai ciri penting yang dipanggil pengumpulan sampah.

Atas ialah kandungan terperinci Jenis Pengumpul Sampah di Jawa. 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
Artikel sebelumnya:Modul Java 9Artikel seterusnya:Modul Java 9