写点什么

大对象堆及.NET 垃圾回收器的改进

  • 2011-10-20
  • 本文字数:750 字

    阅读完需:约 2 分钟

当.NET 开发者编写内存密集型(memory intensive)应用程序的时候,即便总体内存看起来非常充足,也经常会在大对象堆的分配上遇到问题,产生 out-of-memory 异常。微软承诺会在.NET Framework 4.5 中对此做出改进,其中会有更好的LOH 管理,产生的内存碎片会更少。

CLR 会管理两种独立的堆并对其进行分配,小对象堆(small object heap,SOH)和大对象堆(large object heap,LOH)。所有大于 85,000 byte 的内存分配都会在 LOH 上进行。你可以阅读这些文章,以进一步了解这两种堆之间的区别。 为了在LOH 中换取性能,需要消耗大量内存的应用程序——像繁重的图像处理程序——会面临内存碎片的问题,并且可能在使用到最大限制的内存之前就发生 OutOfMemory 异常

.NET 在从 3.5 向 4.0 升级的时候,已经在总体内存分配方面做出了一些改进。负责.NET Framework 的垃圾回收器的资深项目经理 Brandon Bay 对上述问题做出评论,他说:

基于所提供的示例,执行了从 3.5 到 4.0 的升级之后,在耗尽大对象堆上的内存之前,我们可分配的内存增加了 22 倍。

而现在.NET 4.5 看起来是在此基础之上构建的:

在.NET 4.5 中,我们对大对象堆做出了两项改进。首先,我们显著改进了运行时管理空闲列表的方式,从而能够更有效地利用碎片。现在,内存分配器可以重新访问到之前版本中的分配器无法使用的内存碎片。其次,当处于服务器垃圾回收(server GC)模式时,运行时会在每个堆之间平衡 LOH 的分配。而在.NET 4.5 之前,我们只能针对 SOH 做出平衡。在 LOH 分配评测中,我们发现这两种改变让结果有了实质上的改善。

你可以阅读 Brandon 的完整文章以获得更多细节。想要了解更多关于.NET Framework 垃圾回收器的工作原理,你可以参考 MSDN 文档以及 Andrew Hunter 这篇文章

查看英文原文: Large Object Heap And .NET GC Improvements

2011-10-20 07:293287
用户头像

发布了 340 篇内容, 共 145.1 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

首批首家!DataCanvas Alaya NeW智算操作系统通过中国信通院“大模型计算资源(算力)调度平台” 标准评测

九章云极DataCanvas

业务测试流程架构设计:模型、架构图、时序图、类图和路由设计

测试人

软件测试

实时洞察、智能运营——新技术重塑企业绩效管理应用(上)

用友智能财务

数智化 企业绩效管理 会计 应用分析 整合计划

Flink CDC 在阿里云实时计算Flink版的云上实践

Apache Flink

大数据 flink 实时计算 实时计算Flink

用友iuap平台荣获2024年度技术影响力引领品牌奖

用友BIP

InfoQ 用友iuap 企业数智化 用友BIP iuap平台

大型企业云订阅模式典范:用友BIP超级版斩获凌云奖双项大奖!

用友BIP

企业数字化 企业数智化 用友BIP 企业数智底座 凌云奖

质变科技 AI-ready Data Cloud|Agentic AI的前世今生

AI数据云Relyt

AI 数据分析 数据科学 AI代理 自然语言查询

速卖通API接口深度探索:高效获取商品详情与关键词搜索商品策略及代码示例

代码忍者

速卖通API接口

如何制作商业模式画布?10个商业模式画布模板案例盘点!

职场工具箱

商业模式 在线白板 办公软件 绘图工具 商业模式画布

MinIO可观测性最佳实践

观测云

Minio

.NET8.0多线程编码结合异步编码示例

不在线第一只蜗牛

Java .net 算法

焱融科技携手共建“燎原”人工智能产业联盟,引领 AI 产业新飞跃

焱融科技

人工智能 智算中心 人工智能产业联盟

DDR 带宽的计算与监控

地平线开发者

自动驾驶 算法 地平线征程6

携程API接口详解:如何高效获取景点详情及代码示例

代码忍者

携程景点API

敏捷方法论如何破解汽车行业的研发与交付难题

爱吃鱼的小雨

敏捷开发 汽车 敏捷转型 敏捷项目管理

响应式 Vue 页面布局组件-Element Plus

测试人

软件测试

唯品会API接口深度探索:商品详情获取与关键词搜索商品实战指南及代码示例

代码忍者

唯品会商品API接口

2024,语音 AI 元年;2025,Voice Agent 即将爆发丨年度报告发布

声网

一文搞懂架构设计的衡量标准:功能性、可用性、性能、可扩展性、安全性、协作效率、复杂度、成本效益

不在线第一只蜗牛

Java 架构 微服务

大对象堆及.NET垃圾回收器的改进_语言 & 开发_Roopesh Shenoy_InfoQ精选文章