託管和非託管

2022-02-16 19:11:12 字數 466 閱讀 3623

託管和非託管是修飾記憶體的。

託管的意思,你不用直接操作記憶體,你需要的時候跟我說。我替你申請,然後給你用,你用完可以告訴我,我幫你釋放,如果你忙,忘記告訴我了,我也會在定期去幫你釋放的。 這就是託管,你打交道的不是直接的記憶體,而是.net clr。

非託管的意思就是你要自己負責管理記憶體,這裡所說的記憶體管理。實際上只是堆上的記憶體管理,棧記憶體和以前的一樣,函式退出則釋放,heap上的記憶體,非託管記憶體需要自己分配,呼叫建構函式(c需要,c++裡用new替代這部操作了),使用完畢後,需要自己釋放這個記憶體,如果你不小心,吧只想記憶體的指標弄丟了,就造成記憶體洩露了,這個記憶體洩露在你程式退出之前是無法彌補的,所以要小心。(virtualmalloc的情況不在此描述了。因為分配的也不是heap上的記憶體,屬於擴充套件記憶體空間,題外話了。)

簡單說,託管的意思是託管記憶體,但多一層必然會慢,這個麼,微軟早考慮好了,硬體公升級,大家掏錢就能解決的問題不是問題。帶來的好處是託管記憶體不會有洩漏的危險。

託管和非託管

託管和非託管是修飾記憶體的。託管的意思,你不用直接操作記憶體,你需要的時候跟我說。我替你申請,然後給你用,你用完可以告訴我,我幫你釋放,如果你忙,忘記告訴我了,我也會在定期去幫你釋放的。這就是託管,你打交道的不是直接的記憶體,而是.net clr。非託管的意思就是你要自己負責管理記憶體,這裡所說的記...

託管資源和非託管資源

託管資源 net可以自動進行 的資源,主要是指託管堆上分配的記憶體資源。託管資源的 工作不需要人工干預的,有.net執行庫在合適時呼叫垃圾 器進行 非託管資源 是.net不知道如何 的資源,最常見的一類非託管資源是包裝作業系統資源的物件,如檔案,視窗,網路連線,資料庫連線,畫刷,圖示等。這類資源,垃...

C 託管資源和非託管資源

託管資源指的是.net可以自動進行 的資源,主要是指託管堆上分配的記憶體資源。託管資源的 工作是不需要人工干預的,有.net執行庫在合適呼叫垃圾 器進行 非託管資源指的是.net不知道如何 的資源,最常見的一類非託管資源是包裝作業系統資源的物件,例如檔案,視窗,網路連線,資料庫連線,畫刷,圖示等。這...