写点什么

池化.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:564568
用户头像

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

关注

评论

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

云原生时代:看 Apache APISIX 如何玩转可观测性

API7.ai 技术团队

云原生 可观测性 Skywalking API网关 Apache APISIX

一张图 GET 社交泛娱乐出海大招

融云 RongCloud

灵犀平台—API的全可视化开发

鲸品堂

开发者 工具

深入理解 WKWebView(入门篇)—— WebKit 源码调试与分析

百度Geek说

Webkit

HBase 基础及核心架构解析

五分钟学大数据

11月日更

模块四作业

Geek_1d37ea

架构训练营

Meetup 报名|开源分布式数据库探索和应用

OceanBase 数据库

数据库 分布式 活动 技术交流 oceanbase

0.99M,150FPS,移动端超轻量目标检测算法PP-PicoDet来了!

百度大脑

人工智能 百度

压缩比达到7:1,TDengine助力校园智慧用电系统降本增效

TDengine

tdengine 时序数据库

Tapdata 在线研讨会:DaaS vs 大数据平台,是竞争还是共处?

tapdata

数据库

模块四学习总结

Geek_1d37ea

架构训练营

HarmonyOS内核技术大揭秘|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

软件开发除了23种设计模式,还有7个开发原则需要了解

华为云开发者联盟

设计模式 软件开发 开发 对象 SOLID

稳若磐石的焱融 SaaS 服务平台背后,是数据生态的崛起

焱融科技

云计算 分布式 高性能 公有云 文件存储

web技术分享| LRU 缓存淘汰算法

anyRTC开发者

缓存 音视频 WebRTC LRU web技术分享

和 VMware、深信服、天翼云、招商云专家一起聊聊云原生边缘计算

阿里巴巴云原生

阿里云 容器 云原生 KubeMeet 线下活动

【概率】抽屉中的袜子

潮汐朝夕

概率

【可观测之路】“观测云”CSDN技术专区正式上线!

观测云

可观测 CSDN

openGauss开源自动化测试框架Yat,增强社区测试能力

openGauss

Forrester发布首份《中国低代码平台发展报告》,有多少企业应用低代码?

J2PaaS低代码平台

敏捷开发 低代码 低代码开发 低代码平台 低代码报告

学不懂Netty?看不懂源码?不存在的,手把手带你阅读Netty源码

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

又添权威认定,旺链科技通过可信区块链专项认证!

旺链科技

区块链 产业区块链 技术测评 数字化经济

应用不停机发布的思考与初识

陈俊

高可用 技术架构 不停机发布

WICC 花城登场,揭秘时代变局下通信服务新形态

融云 RongCloud

开发者 社交 元宇宙 泛娱乐 通信云技术大会

100行代码,轻松搞定文本编辑器中草稿箱

Tom弹架构

Java 架构 设计模式

一文带你快速掌握PTN网络的路由计算

鲸品堂

Sechunter移动应用隐私合规检测详解

华为云开发者联盟

移动应用 目标检测 隐私 Sechunter 隐私合规

DevEco Testing,新增分布式测试功能|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

Kubernetes 已经成为云原生时代的安卓,这就够了吗?

阿里巴巴云原生

阿里云 Kubernetes 云原生 学习资料 应用管理平台

售后支持领域的服务指标

Geek_utwige

方法论 技术管理 指标体系 数据指标 客户服务

[SpringBoot源码分析]SpringBoot如何启动

零点999

spring SpringBoot 2

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