内存池
定义
命名空间:TouchSocket.Core
程序集:TouchSocket.Core.dll
一、说明
内存池是TouchSocket
系列的最重要的组成部分,在TouchSocket
产品中,BytePool
贯穿始终。所以熟练使用BytePool
,也是非常重要的。
二、功能
内存池(BytePool)是解决创建大量字节数组消耗的最有力手段,其实质完全借鉴了微软的ArrayPool
。而且在此基础上做了更多的优化。
内存池的最小实现单体是内存块(ByteBlock)
和值内存块(ValueByteBlock)
。ByteBlock
是继承自Stream
的类,拥有和MemoryStream
一样的功能和内存回收管理的增强功能。所以如果有MemoryStream
的使用需求的话,就可以完全让ByteBlock
替代。而ValueByteBlock
是ByteBlock
的值类型(ref struct),其功能除了不继承Stream以外,和ByteBlock
一模一样。且为值类型,创建开销更小。