日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

内存分配和垃圾回收

發布時間:2025/1/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内存分配和垃圾回收 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

???????????????????????????????.NetFrameWork

?

解釋.NET Framework 的垃圾回收器管理應用程序的內存分配和釋放。(面試)

?

首先要實例化新對象,計算字段所需的空間 對象所需的空間包括兩部分:同步索引塊和類型對象指針 在分配內存在事后,新對象的指針指向下一個可用內存區域、

首先是在托管堆中給線程堆棧中的對象分配內存空間 ,經過一段時間后會遍歷線程堆棧 如果對象使用完了會在線程堆棧中出棧 在線程堆棧中尋找那些在托管堆中分配了內存的對象

如果沒有找到 說明該對象已經從線程堆棧中出棧 不再使用了 這時就會從托管堆里把給它分配的內存釋放掉。然后壓縮托管堆 通過新對象的指針為新對象分配內存

?

然后描述托管堆中是怎么進行內存分配和垃圾回收的:

?

利用代(就是對象在內存中存放的時間長短)這種垃圾收集器來給對象分配內存:分配方式:

CLR支持3代內存:第0代對象的預算容量為256K 1代對象預算容量為2M 2代對象預算容量為10M

?托管堆中沒有任何對象,此時添加的對象為0代對象

0代對象達到256K 0代對象放滿了就開始垃圾回收 找到不再使用的就釋放掉 然后把原來的還使用的放到一代中,新添加的對象放到0代中 當第二次添加的對象的0代也放滿了 就啟用垃圾回收把此時的0代放到1代中 把最開始的0代放到2代中

?

?

?

?

?

?http://home.cnblogs.com/wz/關于這部分 博客園里有轉載的專家‘深奧’的解釋 呵呵

轉載于:https://blog.51cto.com/3333560/623417

總結

以上是生活随笔為你收集整理的内存分配和垃圾回收的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。