Garbage Collection垃圾回收機制

 

    在C#中,Reference Type的資料會存放在Heap,這樣子如果一直建立物件,就會讓Heap的記憶體空間裡面東西愈積愈多,那這樣子不清理的話就會使用愈來愈多的記憶體,這樣最後有可能會導致記憶體不足,如果是C++會需要呼叫free()來自己清理資料,而C#可以不要這麼做,因為C#會自動清理,不需要自己手動清理。

    在C#中就好像會有清潔隊在固定時間就會把沒有用的垃圾給清理乾淨,如果Heap裡面有記憶體區塊都已經沒有再使用了,就會去刪除這些區塊釋放出記憶體,會檢查這些建立的區塊有沒有指向物件,如果有指向物件的話,那麼就不會刪掉,但如果都沒有指向物件,那就會刪掉。在C#程式的這個機制叫做Garbage Collection垃圾回收機制,有這個機制就不用自己手動來刪除這些資料了。

    Heap是一種記憶體區間,想了解Heap是甚麼的人,可以看下面這篇文章:

    Garbage Collection在程式設計中實際可以不必學會也還是可以寫程式,現在至少先有這個觀念,以後再學比較進階的會有所幫助,在C#中其中還是有強制回收的方法,讓程式釋放出記憶體,今天因為只有講觀念,所以先不提程式怎麼寫。Garbage Collection是C#的程式語言中和C++程式語言一個很大的不同,如果面試時有人問你C++和C#哪裡不同,就可以回答Garbage Collection,了解這個觀念多少還是有幫助。

    

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 波羅、希夏普2020 的頭像
    波羅、希夏普2020

    希夏普2020的程式天地

    波羅、希夏普2020 發表在 痞客邦 留言(0) 人氣()