Anda harus memiliki BEBERAPA pengetahuan tentang bagaimana pengumpulan sampah untuk Java bekerja karena dua alasan:
Pertama, jika Anda tidak tahu cara kerjanya, maka Anda mungkin secara tidak sengaja membuat keputusan desain yang mengarah pada kinerja terburuk dalam aplikasi Anda yang sebenarnya. Ini menjadi semakin kecil kemungkinannya seiring peningkatan GC, tetapi jika Anda memiliki pilihan algoritma di aplikasi Anda, maka mengetahui sesuatu tentang GC berarti Anda dapat memilih satu dengan pengetahuan tentang apa yang akan dilakukan, alih-alih mencari tahu apa yang menyebabkannya. perilaku buruk.
Kedua, jika Anda tidak tahu cara kerjanya, Anda tidak mungkin menyetel GC untuk aplikasi yang diberikan. Kebanyakan programmer Java tidak perlu menyetel GC, karena parameter default berfungsi cukup baik hampir sepanjang waktu. Jika Anda melakukan sesuatu yang keluar dari 'sebagian besar waktu' itu, maka Anda mungkin menemukan diri Anda menyetel parameter GC. Melakukannya tanpa sepengetahuan GC hanya secara acak memutar tombol - Anda mungkin mendapatkan sesuatu yang berguna darinya, tetapi lebih besar kemungkinan Anda akan mengacaukan segalanya dengan lebih buruk.
Jadi, sementara saya tidak akan mengharapkan programmer Java yang baik untuk mengetahui segala sesuatu di bawah sinar matahari tentang GC, saya berharap programmer itu tahu pada tingkat tertentu bagaimana GC dalam JVM mereka menggunakan fungsi, dan apa kompromi untuk itu Algoritma GC.