Mahalagang Pagkakaiba – Kolektor ng Basura kumpara sa Destructor
Karamihan sa mga programming language ay sumusuporta sa Object Oriented Programming. Ito ay isang pamamaraan upang bumuo ng isang programa o isang software gamit ang mga bagay. Ang isang bagay ay nilikha gamit ang isang klase, kaya ito ay isang halimbawa ng isang klase. Ang isang klase ay nagbibigay ng paglalarawan kung ano ang dapat na binubuo ng bagay. Kapag lumilikha ng mga bagay, ang memorya ay inilalaan para sa mga bagay. Ang inilalaan na memorya ay dapat ilabas sa dulo ng pagpapatupad ng programa upang muling magamit ang memorya na iyon para sa ilang iba pang bagay. Ang mga programming language gaya ng Java at C. NET ay gumagamit ng mga garbage collector para sa memory management habang ang mga wika tulad ng C at C++ ay nangangailangan ng programmer na pangasiwaan ang memory management. Ang kinakailangang halaga ng memorya ay dapat na inilalaan, at sa pagtatapos ng pagpapatupad, ang memorya ay dapat ilabas. Ang Garbage collector at destructor ay ginagamit para sa pagpapalabas ng memorya. Ang pangunahing pagkakaiba sa pagitan ng garbage collector at destructor ay ang garbage collector ay isang software na gumaganap ng awtomatikong memory management habang ang destructor ay isang espesyal na paraan na tinatawag ng garbage collector sa panahon ng pagkasira ng object.
Ano ang Garbage Collector?
May mga programming language na namamahala ng mga code environment. Sa mga programming language na Java at C, isinasagawa ang awtomatikong pamamahala ng memorya. Hindi kailangang palayain ng programmer ang memorya na ginagamit ng mga bagay. Mas madali para sa kanila na bumuo ng kahit na kumplikadong mga sistema dahil ang pamamahala ng memorya ay awtomatikong ginagawa. Sa mga programming language tulad ng C, C++, at Objective C, dapat ilabas ng program ang memorya ng mga bagay pabalik sa system. Maaaring malaman ng mga wika tulad ng Java at C ang mga bagay na hindi na ginagamit. Pagkatapos, inilalabas nila ang memorya na inilaan para sa mga bagay na iyon pabalik sa system.
Sa mga programming language na C at Java, kung mayroong klase na tinatawag na Student, maaaring gumawa ng object gamit ang Student s=new Student (); Ang 'bago' ay ginagamit upang lumikha ng isang halimbawa ng klase ng Mag-aaral. Naglalaan ito ng memorya sa system. Ang 's' ay tumutukoy sa memory block na inilaan para sa bagay na iyon. Tinutukoy ng mga kapaligiran ng wika kung ang mga bagay ay ginagamit o hindi. Kung hindi na gagamitin ang mga ito, ilalabas ang memorya at magagamit sa ibang pagkakataon.
Figure 01: Garbage Collector and Destructor
Kapag nagpapatakbo ng program, ang mga bloke ng memorya ay inilalaan mula sa system memory pool. Pagkatapos ay ginagawa ng programa ang mga gawain gamit ang memorya na iyon. Kapag natapos na ang pagpapatupad ng programa, malalaman ng tagakolekta ng basura kung ang mga nakalaan na bloke ng memorya para sa programa ay mahalaga o hindi. Kung hindi sila kinakailangan, ang mga bloke ng memorya ay ibabalik sa system. Kaya, masusubaybayan ng kolektor ng basura ang mga nilikhang bagay sa programa. Ang mga bloke ng memorya na hindi na kinakailangan ay ibabalik sa pool ng memorya ng system. Ang pangunahing bentahe ng prosesong ito ay upang kumpirmahin na ang programmer ay hindi kailangang tumutok sa memory deallocation. Binabalanse nito ang pagganap at paggamit ng memorya.
Ano ang Destructor?
Ang destructor ay isang espesyal na function ng miyembro ng isang klase. Ito ay hinihingi sa tuwing ang bagay ay lumalabas sa saklaw. Maaaring sirain ang bagay kapag natapos ang isang function o sa pagtatapos ng pagpapatupad ng programa. Ang destructor ay may parehong pangalan sa pangalan ng klase. Ang constructor ay ginagamit upang lumikha ng bagay. Maaari itong tumanggap ng mga parameter. Ang constructor ay maaari ding magkaroon ng mga return value. Ngunit sa isang Destructor, walang uri ng pagbabalik o pagtanggap ng mga parameter. Ang isang klase ay maaari lamang binubuo ng isang destructor. Ang isang destructor ay tinutukoy gamit ang tilde sign. Kung ang pangalan ng klase ay Student, ang destructor ay ~Student () {}.
Hinahanap ng basurero ang mga bagay na hindi na kailangan. Tinitiyak nito na ang mga bagay na hindi na ginagamit ng programa ay dapat sirain. Tinatawag nito ang destructor upang palabasin ang memorya at i-deallocate ang mga mapagkukunan. Ang mga destructor ay kapaki-pakinabang upang ilabas ang memorya, isara ang mga file, ilabas ang mga mapagkukunan ng network at isara ang mga koneksyon sa database. Sa karamihan ng mga programming language, hindi kinakailangang isulat ang destructor dahil tinatawag ng basurero ang default na constructor nang mag-isa. Kung ang programmer ay gumawa ng anumang dynamic na paglalaan ng memorya gamit ang mga pointer sa isang wika tulad ng C++, dapat siyang sumulat ng isang destructor upang maglabas ng memorya bago masira ang bagay.
Ano ang Pagkakatulad sa pagitan ng Garbage Collector at Destructor?
Gumagamit ang Garbage Collector at Destructor para maglabas ng memory na hindi na kailangan para sa program
Ano ang Pagkakaiba sa pagitan ng Garbage Collector at Destructor?
Basura Kumpara sa Destructor |
|
Ang garbage collector ay isang software na nagsasagawa ng awtomatikong pamamahala ng memorya. | Ang destructor ay isang espesyal na paraan na tinatawag ng basurero habang sinisira ang bagay. |
Uri | |
Ang kolektor ng basura ay isang software. | Ang destructor ay isang paraan. |
Summary – Garbage Collector vs Destructor
Ang Garbage collector at destructor ay dalawang terminong nauugnay sa pagpapalabas ng memorya. Tinalakay ng artikulong ito ang pagkakaiba sa pagitan ng Garbage Collector at destructor. Ang pagkakaiba sa pagitan ng garbage collector at destructor ay ang isang garbage collector ay isang software na gumaganap ng awtomatikong memory management habang ang isang destructor ay isang espesyal na paraan na tinatawag ng garbage collector sa panahon ng pagkasira ng bagay.
I-download ang PDF ng Garbage Collector vs Destructor
Maaari mong i-download ang PDF na bersyon ng artikulong ito at gamitin ito para sa offline na layunin ayon sa tala ng pagsipi. Paki-download ang bersyon ng PDF dito: Pagkakaiba sa pagitan ng Garbage Collector at Destructor