首页 > 编程语言 >C# ArrayPool学习

C# ArrayPool学习

时间:2023-09-15 11:55:07浏览次数:35  
标签:ArrayPool arr C# 学习 int 数组 长度 data

ArrayPool是个数组缓冲池,可重复使用,避免频繁的创建和销毁数组,减少CG,提高性能

            byte[] data = new byte[200];
            for (int i = 0; i < data.Length; i++) {
                data[i] = (byte)i; //模拟数据
            }
            var arrPool = ArrayPool<byte>.Shared; //通过该静态属性就可申请可复用的数组,这里提出来让代码更清晰
            int length = 400;  //申请一个400长度数组,存放数据
            var arr = arrPool.Rent(length); //注意,申请到的数组的长度不一定等于指定的长度
            Console.WriteLine(arr.Length); //真实长度512,一般申请到的数组的长度都是2的次分
            Array.Copy(data, arr, data.Length);
            for (int i = 0; i < length; i++) {
                Console.Write(arr[i] + ",");  //模拟使用数据
            }
            arrPool.Return(arr); //使用完毕后,将其归还到数组池中

 

标签:ArrayPool,arr,C#,学习,int,数组,长度,data
From: https://www.cnblogs.com/luludongxu/p/17704677.html

相关文章

  • Spring框架开发WebService的环境搭建
    如题。这里只介绍基本的运行环境搭建。所需IDE或编辑器,自行准备。笔者所有的职业开发者朋友都建议使用IDEA旗舰版(收费)。建议次选VsCode。eclipse、myeclipse这些再次。环境:1、JDK20。javaer都清楚的东西,不赘述。2、maven。很流行的依赖管理工具,在学习开发中顺手拿来编译运行也......
  • electron 如何在linux底下调试
    1、确保已经安装了Node.js和npm。2、在你的Electron项目目录下,执行以下命令安装 electron-debug:npminstall--save-develectron-debug3、修改主进程(mainprocess)的启动代码(通常在 main.js 文件中),添加以下内容:const{app,BrowserWindow}=require('electron')......
  • 开源gRPC 微服务系统 windows 编译问题及解决
    gRPC是google开发的一个开源rpc微服务框架,易用跨平台,官方网站上对linuxMac支持很好,给出了完善的编译解决方案,但是在windows上很难用特别是编译这部分,本文汇总下windows编译遇到的问题及解决方案:引用一个前人写的编译攻略,Windows+VS2017使用gRPC-我来乔23-博客园(cnblogs.com......
  • EventSource推送协议
    EventSource传输协议最近开发项目中, 有个需求是 客户端发送指令给服务端, 服务端接收指令,进行解析,解析完成才进行返回, 由于不是实时返回,当时考虑的两种技术方案 1运用定时器 进行轮询请求刷新, 2应用WebSocket, 考虑 轮询请求有点占用资源, 运用WebSocket有点没必......
  • AP8660 DC-DC升压恒压芯片 PWM模式 24W
    AP8660是一款升压dc-dc转换器,是一㰪内置MOS调节器,内部补偿还可以最小代多达6个外部组件,内部的软识启动功能可以降压涌入电流AP8660SOT23-6封装,可以为PCB提供节省空间特点可调输出,最高达到24W内部固定PWM频率:1.0MHZ反馈电压:0.6V内置0.25Ω,2A,26V功率MOSFET停机电流:0.1PA过电压......
  • 无涯教程-JavaScript - TRUE函数
    描述TRUE函数返回逻辑值TRUE。YoucanusethisfunctionwhenyouwanttoreturnthevalueTRUEbasedonacondition.Example=IF(A1=1,TRUE()).YoucanalsoenterthevalueTRUEdirectlyintocellsandformulaswithoutusingthisfunction.Example=IF(A1=1,T......
  • PPT| 企业CRM系统建设项目蓝图汇报方案 P25
    本人在咨询机构从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.【智能制造数字化咨询】该PPT共25页,如需完整原版 方案,点击右上角红色按钮关注+私信。......
  • Compile、Make和Build的区别
    Compile、Make和Build的区别 针对Java的开发工具,一般都有Compile、Make和Build三个菜单项,完成的功能的都差不多,但是又有区别。 编译,是将源代码转换为可执行代码的过程。编译需要指定源文件和编译输出的文件路径(输出目录)。Java的编译会将java编译为class文件,将非java的文件(一般成......
  • 手工升级到Oracle 12C
    一、升级路线10.2.0.5,11.1.0.7,11.2.0.2以上版本可以直接升级到12c。10.2.0.5以前的版本和11.2.0.1版需要先升级到中间版本,再升级到12c。二、环境说明操作系统:RedHat8Linux64位源数据库版本:Oracle11.2.0.3目标数据库版本:Oracle12.1.0.2三、升级步骤简述备份源数......
  • python利用openpyxl实现利用excel每行数据填入对应模板批量生成excel
    一、openpyxl常见操作可以参考:https://blog.csdn.net/JunChen681/article/details/1260532061、openpyxl把excel分成了三层Workbook是对工作簿的抽象(工作簿,一个excel文件包含多个sheet。)Worksheet是对表格的抽象(工作表,一个workbook有多个,表名识别,如“sheet......