色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

.NET內存管理、垃圾回收

1.Stack和Heap


  每個線程對應一個stack,線程創建的時候CLR為其創建這個stack,stack主要作用是記錄函數的執行情況。值類型變量(函數的參數、局部變量等非成員變量)都分配在stack中,引用類型的對象分配在heap中,在stack中保存heap對象的引用指針。GC只負責heap對象的釋放,heap內存空間管理

Heap內存分配
   
  除去pinned object等影響,heap中的內存分配很簡單,一個指針記錄heap中分配的起始地址,根據對象大小連續的分配內存

Stack結構
    每個函數調用時,邏輯上在thread stack中會產生一個幀(stack frame),函數返回時對應的stack frame被釋放掉
    用個簡單的函數查看執行時CLR對棧的處理情況:

static void Main(string[] args)
{
    
int r = Sum(23456);
}
private static int Sum(int a, int b, int c, int d, int e)
{
    
return a + b + c + d + e;
}

NET技術.NET內存管理、垃圾回收,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 张北县| 林甸县| 固安县| 射阳县| 株洲市| 望奎县| 利津县| 商丘市| 哈尔滨市| 南乐县| 渭南市| 额济纳旗| 阳泉市| 长顺县| 呼伦贝尔市| 和硕县| 海丰县| 安泽县| 东海县| 汝城县| 元江| 平乡县| 潜山县| 运城市| 黄骅市| 黑山县| 手游| 德令哈市| 和田县| 分宜县| 额尔古纳市| 宁德市| 准格尔旗| 陕西省| 华坪县| 扬州市| 赣州市| 遵义县| 蒲城县| 和静县| 琼结县|