文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>《Advanced .NET Debugging》 读书笔记 Listing 5-5: LOH的简单示例

《Advanced .NET Debugging》 读书笔记 Listing 5-5: LOH的简单示例

时间:2011-01-06  来源:李志鹏

using System;
using System.Text;
using System.Runtime.InteropServices;

namespace Advanced.NET.Debugging.Chapter5
{
     class LOH
    {
        static void Main(string[] args)
        {
            LOH l = new LOH();
            l.Run();
        }

        public void Run()
        {
            byte[] b = null;
            Console.WriteLine("Press any key to allocate on LOH");
            Console.ReadKey();

            b = new byte[100000];

            Console.WriteLine("Press any key to GC");
            Console.ReadKey();

            b = null;
            GC.Collect();

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }

    }
}

在程序中分配了一个包含10w个元素的数组,此时它会被分配到LOH上。可以通过WinDbg验证:

1. 在WinDbg中载入05LOH.exe

2. 执行.symfix

3. 在程序运行到分配内存之前,执行 !eeheap -gc结果如下:

此时可以找到LOH从0x0000000012151000开始

4. 执行 !DumpHeap –startatlowerbound 0x00000000012151000:

可见此时LOH上只是零散分布了一些对象。

5. 在分配对象以后,再次执行  !DumpHeap –startatlowerbound 0x00000000012151000:

可见在LOH上该10w字节长度的对象占据的大小为100024字节。
相关阅读 更多 +
排行榜 更多 +
哥布林弹球b服手游下载

哥布林弹球b服手游下载

休闲益智 下载
小马样式盒游戏下载

小马样式盒游戏下载

休闲益智 下载
异变小镇中文版下载安装

异变小镇中文版下载安装

冒险解谜 下载