QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

池化.NET 内存流以解决大内存堆分配问题

  • 2015-03-29
  • 本文字数:414 字

    阅读完需:约 1 分钟

与很多依赖于标记 - 清理的垃圾回收器的语言一样,C#也会在频繁分配内存或分配大块内存时产生性能问题。微软必应的高级软件开发工程师 Ben Watson,就曾在使用 MemoryStream 类的时候遇到了这种问题。在他的 Writing High-Performance .NET Code 一书中,他写道,

在某个饱受大量 LOH(大对象堆)分配之苦的应用中,我们发现如果将某种类型的对象保存在池中,就能解决 99% 的 LOH 问题。这个对象就是我们在网络中序列化和传输位的 MemoryStream。为了避免碎片,我们保存了一个 MemoryStream 对象的队列,尽管实际实现要复杂得多,但理论上来说基本如此。每次 MemoryStram 对象释放的时候,就将其放回池中以供复用。

在此之后微软将他的代码放到了 Microsoft.IO.RecycableMemoryStream类中。该类是传统的内存流的代替品。在最简单的情况下,可以用manager.GetStream代替new MemoryStream

注意这个流管理器是线程安全的,并且应该在进程中一直使用。

查看英文原文 Pooled Memory Streams for .NET

2015-03-29 08:564609
用户头像

发布了 59 篇内容, 共 23.9 次阅读, 收获喜欢 3 次。

关注

评论

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

基于Java+SpringBoot+vue前后端分离城镇保障性住房管理系统设计实现

hunter_coder

后端开发

基于Java+SpringBoot+vue前后端分离大学城水电管理系统设计实现

hunter_coder

后端开发

聚焦创新巅峰 | 5000台Gather G-BOX矿机于7月23日全面上线

股市老人

基于Java+SpringBoot+vue前后端分离大型商场应急预案管理系统设计实现

hunter_coder

后端开发

基于Java+SpringBoot+vue前后端分离宠物领养系统设计实现

hunter_coder

后端开发

Java & Go 定时任务

FunTester

基于 MelosBoom ,捕获 DePIN 赛道发展红利

石头财经

参与OpenTiny征文活动,赢取500元开发者大礼包!

OpenTiny社区

开源 前端 低代码 组件库 TinyVue

PPT AI生成软件有哪些?10款顶级的AI合成PPT工具推荐!

彭宏豪95

人工智能 效率工具 PPT AIGC AI生成PPT

龙蜥社区第五届理事大会圆满结束!深度探讨 AI 浪潮下的合作模式

OpenAnolis小助手

AI 操作系统 龙蜥社区 CentOS迁移 龙蜥理事大会

需求缺陷管理工具推荐:如何选对?

爱吃小舅的鱼

缺陷管理 需求缺陷管理

基于Java+SpringBoot+Vue前后端分离餐厅管理系统设计和实现

hunter_coder

后端开发

全链路追踪 & 性能监控,GO 应用可观测全面升级

阿里巴巴云原生

阿里云 云原生 可观测

一个典型的性能分析案例

老张

性能测试 需求分析 云存储 TOS

ToB企业市场部四分之三的工作都需要企业全历史行为数据的支持

客户在哪儿AI

ToB营销 活动营销 ToB增长 大客户营销

如何挑选最佳项目协同软件?实用指南

爱吃小舅的鱼

项目协同 项目进度管理

基于Java+SpringBoot+Vue前后端分离车辆管理系统设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+Vue前后端分离餐饮管理系统设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+vue前后端分离厨艺交流平台设计实现

hunter_coder

后端开发

基于 MelosBoom ,捕获 DePIN 赛道发展红利

大瞿科技

基于 MelosBoom ,捕获 DePIN 赛道发展红利

BlockChain先知

《龙蜥理事说》第三期对话中兴通讯 探索下一代新型算力和智能化技术

OpenAnolis小助手

AI 操作系统 龙蜥社区 中兴通讯 龙蜥理事说

欢迎提报!2024 龙蜥社区年中三大奖项评选来了

OpenAnolis小助手

开源 操作系统 龙蜥社区

叮!2024 龙蜥操作系统大会议题征集正式启动

OpenAnolis小助手

AI 操作系统 龙蜥社区 龙蜥操作系统大会

如何选择人力资源管理软件?2024年顶级10款评测

爱吃小舅的鱼

研发团队 人力资源管理 人力资源管理系统

池化.NET内存流以解决大内存堆分配问题_.NET_Jonathan Allen_InfoQ精选文章