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

.NET內(nèi)存管理、垃圾回收

1.Stack和Heap


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

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

Stack結(jié)構(gòu)
    每個函數(shù)調(diào)用時,邏輯上在thread stack中會產(chǎn)生一個幀(stack frame),函數(shù)返回時對應(yīng)的stack frame被釋放掉
    用個簡單的函數(shù)查看執(zhí)行時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技術(shù).NET內(nèi)存管理、垃圾回收,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 图片| 成武县| 贺州市| 皮山县| 遂溪县| 甘孜| 静海县| 遂川县| 泰顺县| 中阳县| 清徐县| 靖远县| 禄丰县| 新密市| 雷山县| 玉山县| 察哈| 翁牛特旗| 翁源县| 沙洋县| 平南县| 文昌市| 长葛市| 珠海市| 桐庐县| 绥化市| 天台县| 石城县| 新巴尔虎左旗| 湘潭市| 大城县| 澜沧| 习水县| 金华市| 绥棱县| 普安县| 禄劝| 元阳县| 苏州市| 武宁县| 西充县|