c#中集合比较Span,ArrayPool ArraySegment

jason成都 2019-05-05 04:50:14
最近复习c#,发现了集合,不不知道谁实践使用用,他们有什么区别
...全文
593 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzifang 2020-12-14
  • 打赏
  • 举报
回复
ArraySegment性能低,建议用Span代替
wanghui0380 2019-05-05
  • 打赏
  • 举报
回复
ArrayPool 其实已经不在集合里面了,他实际是池。已经不是集合了,都知道集合操作是添加,移除,和,差,并,补,拆分,合并 但池关注的是取用和归还。比如阿里的“备用金”也就是一个 “资金池” ArraySegment 则是避免copy,我们以前经常写 byte[] Array.copy,这是需要分配内存的,而ArraySegment则让你别copy,用一个范围表示就好。他关注的是一份数据,用范围划分。他也带有一定“池的意思”,只是用这个当池麻烦点,你的不停的判定范围连续性和有效性,占用性。
wanghui0380 2019-05-05
  • 打赏
  • 举报
回复
这些东西平时没啥用,只有当你处理平行处理的时候才会用到。 有大量并行操作,但内存资源紧张,所以使用并发限流手段去控制。------并发限流,同时把有限资源集中一次性分配,然后尽量重复利用(比如NIO) 在没有并行操作的时候,其实一般用不上这个,但是程序员应该多少有些防范性操作,只要不是过分镀金,我个人建议,还是用用
stherix 2019-05-05
  • 打赏
  • 举报
回复
Span,ArraySegment其实都比较类似 都是对已有数组的切片功能,而不要创建新的数组/字符串,避免生成新的对象以及内存拷贝,提高了效率 ArrayPool还没用过

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧