C/C++
文章平均质量分 94
编程宝库
关注软件工程实践,百度架构师。
展开
-
如何提高C# StringBuilder的性能
本文探讨使用C# StringBuilder 的最佳实践,用于减少内存分配,提高字符串操作的性能。 在 .NET 中,字符串是不可变的类型。每当你在 .NET 中修改一个字符串对象时,就会在内存中创建一个新的字符串对象来保存新的数据。相比之下,StringBuilder 对象代表了一个可变的字符串,并随着字符串大小的增长动态地扩展其内存分配。 String 和 StringBuilder 类是你在 .NET Framework 和 .NET Core 中处理字符串时经常使用的两个流行类。然而,每个类都有其优原创 2021-11-18 10:51:10 · 785 阅读 · 0 评论 -
C# ArrayPool 源码解读之 byte[] 池化
一:背景 1. 讲故事 最近在分析一个 dump 的过程中发现其在 gen2 和 LOH 上有不少size较大的free,仔细看了下,这些free生前大多都是模板引擎生成的html片段的byte[]数组,当然这篇我不是来分析dump的,而是来聊一下,当托管堆有很多length较大的 byte[] 数组时,如何让内存利用更高效,如何让gc老先生压力更小。 不知道大家有没有发现在 .netcore 中增加了不少池化对象的东西,比如: ArrayPool,ObjectPool 等等,确实在某些场景下还是特别实用的原创 2021-09-01 10:07:55 · 808 阅读 · 0 评论