最近我运行了Andrew Hunter在他的博客"The Dangers of the Large Object Heap"提供的示例,编译使用的是.NET 4,我得到了以下数字:
使用大块: 分配了622Mb
使用大块,频繁垃圾回收: 分配了582Mb
只使用小块: 分配了1803Mb
使用大块,大块不增长: 分配了630Mb
如果相同的代码编译为.NET 2.0,我几乎得到了文章中提到的数字:
使用大块: 分配了21Mb
使用大块,频繁垃圾回收: 分配了26Mb
只使用小块: 分配了1811Mb
使用大块,大块不增长: 分配了707Mb
这种显著改进的原因是什么?
代码是针对x86平台编译并在Windows 7上运行。