文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
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字节。
相关阅读 更多 +
排行榜 更多 +
XLM币最具爆发力的安全交易所币安binance下载

XLM币最具爆发力的安全交易所币安binance下载

金融理财 下载
XEM币最安全隐私链的全球交易所币安binance下载

XEM币最安全隐私链的全球交易所币安binance下载

金融理财 下载
WAVES币最新上线的优质交易所币安binance下载

WAVES币最新上线的优质交易所币安binance下载

金融理财 下载