‫Kami akan kembali dan ini kamu.
‫Saya ingin berbicara tentang pemulung dan bagaimana dia menjaga memori.
‫Jadi pengumpulan sampah adalah alat yang tersedia dan beberapa bahasa pemrograman.
‫Dan di beberapa di antaranya, dilakukan secara manual.
‫Di tempat lain itu dilakukan secara otomatis.
‫Dan kerangka kerja dot net menyediakan manajemen memori otomatis, yang berarti Anda tidak perlu menggunakan
‫pengumpul sampah secara manual seperti yang Anda lakukan di semua bahasa pemrograman.
‫Jadi bahasa pemrograman seperti C atau C++ dan lainnya, mereka memiliki pengumpulan sampah manual yang harus Anda jalankan sesekali
‫dan Anda harus tahu kapan Anda harus menjalankannya.
‫Jadi itu sesuatu yang dilakukan secara otomatis.
‫Intershop itu sebabnya bukan sesuatu itu.
‫Ya, banyak orang menggunakan sangat sering.
‫Jadi begitu Anda memiliki program yang lebih kompleks dan benar-benar canggih, Anda akan mulai menggunakannya sesekali.
‫Tapi sungguh, itu bukan sesuatu yang harus Anda gunakan sepanjang waktu atau bahkan harus digunakan sama sekali dalam
‫banyak kasus.
‫Jadi itu sebabnya ini bukan topik utama.
‫Baiklah.
‫Jadi katakanlah kita memiliki objek yang disebut Dennis dan bertipe manusia.
‫Jadi saya membuat kelas yang disebut manusia, dan ada beberapa properti yang berbeda dan sebagainya.
‫Jadi pada akhirnya, saya hanya membuat objek bertipe manusia.
‫Dan itu disebut Dennis.
‫Dan dengan melakukan itu, dengan menggunakan kata kunci baru ini, saya membutuhkan memori karena itu membuat objek di memori saya.
‫Jadi mengalokasikan memori untuk kita.
‫Dan kerangka kerja menangani reklamasi memori untuk digunakan dalam sistem setelah objek tidak lagi digunakan.
‫Jadi dalam hal ini, saya membuat objek ini dan kemudian saya mungkin menggunakannya dan saya mungkin menggunakannya lagi dan lagi.
‫Tetapi pada satu titik saya tidak akan menggunakannya lagi dan saya bahkan mungkin akan memotong referensi untuk itu.
‫Dan kemudian, ya, pengumpul sampah akan membersihkannya karena memori ini sekarang diblokir dan pengumpul
‫sampah harus membersihkannya.
‫Jadi itu harus membuat memori ini tersedia lagi untuk objek lain, misalnya.
‫Sekarang, mari kita lihat dari perspektif visual, jadi kita memiliki kumpulan memori sistem ini
‫di sisi kiri dan program kita di sisi kanan dan kumpulan memori sistem memiliki banyak memori.
‫Jadi kita bisa menggunakan memori ini untuk beberapa program yang berbeda.
‫Tapi sekarang kami memiliki program kami yang menjalankannya.
‫Sekarang di program kami, kami membuat objek.
‫Sekarang, tiba-tiba, kita membutuhkan sedikit ruang dalam ingatan kita.
‫Baiklah.
‫Jadi ada referensi dari program kita ke memori tempat objek kita disimpan.
‫Baiklah.
‫Jadi ada referensi langsung dan kita bisa menggunakannya kembali dan kita bisa memanggilnya dari tempat yang berbeda dan sebagainya.
‫Baiklah.
‫Dan kemudian kita memiliki satu dan satu lagi.
‫Jadi kami memiliki beberapa objek berbeda yang kami buat dan setiap kali akan membuat objek baru.
‫Ada memori yang dialokasikan di kumpulan memori dan ada referensi dari program kami ke memori itu.
‫Jadi referensi ini ada.
‫Jadi ada referensi dari program kami ke kumpulan memori.
‫Sekarang, pada satu titik, referensi mungkin akan dihapus.
‫Jadi kita mungkin menghapus referensi dengan menyetel variabel sekarang atau dengan menyetel objek null dan kemudian referensi
‫tiba-tiba hilang.
‫Sekarang, tidak ada referensi dari program kami ke lokasi memori kecil ini di sini lagi.
‫Jadi pemulung kami memperhatikannya dan berkata, OK, tidak ada referensi.
‫Jadi bagian kecil dari memori ini tidak pernah digunakan.
‫Jadi mari kita bersihkan saja atau mari kita lihat, saya berada atau mari kita bebaskan untuk lokasi lain dan itulah yang
‫terjadi kemudian.
‫Jadi sekarang mari kita lihat contoh kapan pengumpul sampah akan masuk, dan saya memiliki fungsi di sini yang disebut
‫fungsi saya dan saya membuat objek di sini.
‫Sekali lagi, itu disebut Dennis.
‫Dan kemudian Dennis memanggil metodenya atau kita sebut metodenya, seperti mengajar.
‫Kemudian kita atur umurnya lalu kita sebut metode lain, bertambah tua dan lain sebagainya.
‫Tetapi pada suatu saat, objek dunnies ini di memori tidak diperlukan lagi karena pemanggilan fungsi telah
‫selesai.
‫Jadi fungsinya berakhir, objek.
‫Dennis keluar dari ruang lingkup dan tidak ada referensi ke Dennis lagi karena fungsi saya adalah fungsi dan
‫kami memiliki objek ini yang ada di dalam fungsi.
‫Jadi ruang lingkupnya ada di dalam fungsi.
‫Jadi setelah pemanggilan fungsi selesai, tidak ada referensi langsung lagi karena kita tidak bisa merujuk ke objek
‫yang ada di dalam fungsi dari luar fungsi ini.
‫Benar.
‫Jadi kita perlu membuat bidang untuk itu atau melakukan pendekatan lain untuk ini.
‫Tetapi pada akhirnya, pengumpul sampah, yang membersihkan ini kemudian dan mengalokasikan kembali memori ini.
‫Dan ide umumnya di sini adalah bahwa ini hanyalah satu contoh sederhana.
‫Ada banyak situasi lain di mana pengumpul sampah akan masuk, tetapi ini adalah sesuatu yang
‫telah kita gunakan.
‫Jadi konsep yang dapat Anda lihat di sini, kami telah melihatnya di video atau kuliah lain dari kursus
‫ini.
‫Itu sebabnya saya memilih contoh ini.
‫Jadi apa yang perlu Anda ketahui tentang pengumpulan sampah?
‫Nah, Anda tidak harus memanggil pengumpul sampah secara manual, tetapi Anda bisa melakukannya secara manual.
‫Pengumpul sampah membutuhkan kekuatan pemrosesan.
‫Jadi ada di utas terpisah dan sangat ringan.
‫Tapi tetap saja, beberapa kekuatan pemrosesan diperlukan.
‫Tujuan pengumpul sampah adalah untuk mengosongkan memori, tetapi tidak menggunakan terlalu banyak daya pemrosesan.
‫Jadi secara umum tidak memerlukan banyak daya pemrosesan, tetapi tidak akan dipanggil setiap saat atau
‫pengumpul sampah tidak akan berjalan sepanjang waktu untuk mengosongkan memori.
‫Itu hanya akan berjalan ketika itu perlu atau ketika dianggap perlu.
‫Jadi itu benar-benar bagian yang sulit di sini.
‫Ingatan itu tidak serta merta diambil kembali.
‫Mungkin butuh sedikit waktu untuk pengumpul sampah, bahkan jika Anda memanggilnya secara manual, tidak harus
‫langsung berlari.
‫Jadi ini adalah beberapa hal rumit tentang pengumpul sampah yang dapat Anda terapkan untuk menyelesaikan metode
‫untuk mengeksekusi kode tepat sebelum objek dilepaskan dari memori oleh pengumpul sampah.
‫Ini berarti bahwa jika Anda memutuskan untuk menjalankan kode tertentu tepat sebelum suatu objek dibersihkan, maka tepat sebelum
‫pengumpul sampah membersihkannya.
‫Jadi, setelah tidak ada referensi lagi, misalnya, Anda dapat menggunakan metode lizer final di dalam kelas
‫ini untuk mengimplementasikan fungsionalitas spesifik yang Anda ingin mereka jalankan.
‫Mungkin Anda ingin membersihkan barang sendiri sebelum pengumpul sampah masuk dan membersihkan objek
‫Anda atau pindah ke memori atau melepaskan objek ini dari memori.
‫Baiklah.
‫Kapan pengumpul sampah berjalan?
‫Nah, ketika sistem memiliki sedikit memori fisik, ketika memori yang dialokasikan melebihi ambang
‫batas yang telah ditentukan, ketika pengumpul sampah atau metode pengumpulan dipanggil, meskipun ini adalah metode yang super
‫rumit.
‫Jadi ini adalah sesuatu yang.
‫Ya, sangat spesifik.
‫Sangat spesial.
‫Jika Anda ingin tahu lebih banyak tentangnya, Anda harus melihat dokumentasi di pengumpul sampah.
‫Tetapi metode pengumpulan tidak selalu langsung dipanggil dan tidak langsung membersihkan semuanya.
‫Ini lebih seperti Anda memberi alat saran.
‫Jadi Anda berkata, OK, pemulung.
‫Saya pribadi berpikir itu akan menjadi poin yang bagus atau tempat yang bagus untuk mengumpulkan sampah, tetapi dalam beberapa kasus
‫mungkin tidak menerimanya atau mungkin melakukannya nanti atau sesuatu seperti itu.
‫Mungkin itu hanya melakukan pengumpulan sampah dan memutuskan bahwa itu tidak perlu atau semacamnya.
‫Jadi itu sangat rumit.
‫Jika Anda ingin tahu lebih banyak tentangnya, lihat dokumentasinya.
‫Tapi saya pikir ini adalah titik awal yang baik untuk memahami apa yang dilakukan pemulung.
‫Dan seperti yang saya katakan, dalam banyak kasus, Anda tidak memerlukannya karena saat ini kita memiliki begitu banyak memori dan jika Anda tidak memiliki
‫kebocoran memori yang besar dalam program Anda, Anda seharusnya tidak pernah mengalami masalah ini.