創新互聯www.cdcxhl.cn八線動態BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
成都創新互聯為您提適合企業的網站設計?讓您的網站在搜索引擎具有高度排名,讓您的網站具備超強的網絡競爭力!結合企業自身,進行網站設計及把握,最后結合企業文化和具體宗旨等,才能創作出一份性化解決方案。從網站策劃到網站制作、成都網站制作, 我們的網頁設計師為您提供的解決方案。小編這次要給大家分享的是c#中托管和非托管資源詳解,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
前言
c# 托管和非托管比較重要,因為這涉及到資源的釋放。
現在只要在計算機上運行的,無論玩出什么花來,整個什么概念,逃不過輸入數據修改數據輸出數據(計算機本質),這里面有個數據的輸入,那么我們的內存有限啊,這里面就牽扯到數據釋放。
看下c# 的垃圾回收是怎么樣的。
了解垃圾回收之前首先要了解數據,了解數據需要了解數據類型啊,數據類型分為值類型還有引用類型。
windows 使用一個虛擬尋址系統,該系統把程序可用的內存地址映射到硬件內存中的實際地址上,這些任務完全由windows 在后臺管理。我們的程序運行在操作系統上,那么我們作為程序員關系的就是這個虛擬尋址系統。
這東西有什么用呢?
比如32位系統中,每個進程所占用的最多4G(4G這樣來的,2^32,4個字節),那么這個程序如果進行管理的這4G,它不需要知道在硬件地址是多少。
比如這個進程申請了1k內存,那么這個進程管理的實際是從0到1k的虛擬內存,而不需要知道這個硬件物理內存地址是多少,有一個可以直接證明的就是我們寫c++輸出指針的時候,發現指針輸出1千多,
你覺得可能是物理內存地址的1千多嗎?默默的打開資源管理看看現在占用多少內存。
默認情況下,32 位計算機上的每個進程都具有 2 GB 的用戶模式虛擬地址空間。這里解釋一下,每個進程2個G是虛擬地址,就是在這個進程維護一個2G的虛擬地址,并不是實際占有2G的硬件內存地址。
盜一張圖:
虛擬地址有三種狀態:
狀態 | 描述 |
Free | 該內存塊沒有引用關系,可用于分配。 |
保留 | 內存塊可供你使用,并且不能用于任何其他分配請求。 但是,在該內存塊提交之前,你無法將數據存儲到其中。 |
已提交 | 內存塊已指派給物理存儲。 |
那么這個虛擬內存上又分了堆和棧,棧上存儲值類型,堆上存儲引用類型。
他們的存儲方式不一樣。
下面是棧:
棧是這樣子的先用高位后用低為,比如申請80000,先用的就是80000 直到為0為止。
{ int a=10; double b=100.0; }
網頁標題:c#中托管和非托管資源詳解-創新互聯
新聞來源:http://vcdvsql.cn/article12/djhcgc.html
成都網站建設公司_創新互聯,為您提供網站設計、網站建設、網站營銷、定制開發、品牌網站設計、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯