当前位置: 首页 > article >正文

C#-数组池减少GC工作

数组池减少GC工作

         通过ArrayPool类(名称空间System.Buffers)使用数组池,可减少垃圾收集器的工作,ArrayPool管理一个数组池,数组可以从这租借,并返回池中,内存在ArrayPool中管理。

创建ArrayPool<T>,调用静态Create()方法;

使用预定义共享池,通过访问Shared属性

从池中租用内存,可调用Rent()方法,(池中数组元素数量最低16,且都是成倍增加);

内存(数组)返回到池中,调用Return()方法,可指定返回池之前是否清除该数组(false,下次租用数组的人可读取数据);

ArrayPool<int> arrayPool = ArrayPool<int>.Create(maxArrayLength: 100, maxArraysPerBucket: 10);
int[] arr = ArrayPool<int>.Shared.Rent(10);
arr[15] = 15;
Console.WriteLine($"Len={arr.Length}\tarr[15]={arr[15]}");//输出Len=16    arr[15]=15
ArrayPool<int>.Shared.Return(arr,true);
Console.WriteLine(arr[15]);//输出0


http://www.kler.cn/a/162089.html

相关文章:

  • 【Qt-ROS开发】使用 Qt Creator 构建和编译含 ROS 库的 Qt 项目
  • 论软件维护及其应用子问题
  • Spring框架之适配器模式 (Adapter Pattern)
  • 【入门篇】A+B Problem——多语言版
  • python识别ocr 图片和pdf文件
  • 【SpringBoot】18 上传文件到数据库(Thymeleaf + MySQL)
  • 智能优化算法应用:基于北方苍鹰算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 前端——html拖拽原理
  • Redis默认序列化方式乱码原因及解决办法
  • 谷歌正式发布最强 AI 模型 Gemini
  • C语言——常用库函数
  • 强化学习——简单解释
  • 学习spring、springmvc、mybatis、ssm所有可能用到的依赖总结,父工程pom文件依赖,<packaging>pom</packaging>
  • 2023年5个自动化EDA库推荐
  • 新概念第一册
  • python获取公网IP的三种方法
  • Vue.filter
  • vivado实现分析与收敛技巧9-分析使用率统计数据
  • 7-1 查找书籍
  • 拨号连接bat命令和拨号错误623,系统无法找到此连接的电话簿项的解决方法
  • 联邦学习新探:端边云协同引领大模型训练的未来 | INFOCOM 2024
  • STM32存储左右互搏 SPI总线读写FRAM MB85RS16
  • Spring 依赖注入的三种方式优缺点
  • 【UE5】瞬移+马赛克过渡效果
  • mixamo根动画导入UE5问题:滑铲
  • NGINX相关配置