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

网站建设捌金手指花总十二珠海住房和建设局网站

网站建设捌金手指花总十二,珠海住房和建设局网站,深圳福田香格里拉酒店,wordpress保护插件对资源的可复用是提升应用程序性能的一个非常重要的手段#xff0c;比如本篇要分享的 ArrayPool 和 MemoryPool#xff0c;它们就有效的减少了内存使用和对GC的压力#xff0c;从而提升应用程序性能。什么是 ArrayPool System.Buffers 命名空间下提供了一个可对 array 进行复… 对资源的可复用是提升应用程序性能的一个非常重要的手段比如本篇要分享的 ArrayPool 和 MemoryPool它们就有效的减少了内存使用和对GC的压力从而提升应用程序性能。什么是 ArrayPool System.Buffers 命名空间下提供了一个可对 array 进行复用的高性能池化类 ArrayPoolT在经常使用 array 的场景下可使用 ArrayPoolT 来减少内存占用,它是一个抽象类如下代码所示 public abstract class ArrayPoolT { }可以想象一下你的业务场景中需要多次实例化 array这么做有什么后果呢很显然每一次 new array 都会在托管堆上分配同时当 array 不再使用时还需要 GC 去释放而 ArrayPoolT 就是为了解决此事而生的它在池中动态维护若干个 array 对象当你需要 new array 的时候只需从池中获取即可。使用 ArrayPoolT 可以通过下面三种方式来使用 ArrayPoolT 。通过 ArrayPoolT.Shared 属性来获取 ArrayPoolT 实例。通过 ArrayPoolT.Create() 来生成 ArrayPoolT 实例。通过继承 ArrayPoolT 来生成一个自定义子类。下面的代码展示了如何从 ArrayPool 中获取一个 size 10 的 array 数组。 var shared  ArrayPoolint.Shared; var rentedArray  shared.Rent(10);上面的代码一定要注意虽然只租用了 10 个 size但底层会返回 2的倍数  的size , 也就是图中的 2* 8 16。当什么时候不需要 rentedArray 了记得再将它归还到 ArrayPool 中如下代码所示。 shared.Return(rentedArray);下面是仅供参考的完整代码。static void Main(string[] args){var shared  ArrayPoolint.Shared;var rentedArray  shared.Rent(10);for (int i  0; i  10; i){rentedArray[i]  i  1;}for (int j  0; j  10; j){Console.WriteLine(rentedArray[j]);}shared.Return(rentedArray);Console.ReadKey();}创建自定义的 ArrayPool 你也可以通过重写 ArrayPool 来实现自定义的池化对象如下代码所示public class CustomArrayPoolT : ArrayPoolT{public override T[] Rent(int minimumLength){throw new NotImplementedException();}public override void Return(T[] array, bool clearArray  false){throw new NotImplementedException();}}使用 MemoryPoolT System.Memory 命名空间下提供了一个内存池对象 MemoryPoolT在这之前你需要每次都 new 一个内存块出来同时也增加了 GC 的负担有了 MemoryPoolT 之后你需要的内存块直接从池中拿就可以了。static void Main(string[] args){var  memoryPool  MemoryPoolint.Shared;var rentedArray  memoryPool.Rent(10);for (int i  0; i  10; i){rentedArray.Memory.Span[i]  i  1;}for (int j  0; j  10; j){Console.WriteLine(rentedArray.Memory.Span[j]);}Console.ReadKey();}ArrayPoolT vs MemoryPoolT 从上面的演示可以看出 ArrayPoolT 是以 array 的形式向外租借而 MemoryPoolT 则是以 内存块 的方式向外租借所以在重复使用 array 的场景下可以优选 ArrayPoolT 来提高性能如果你的代码是以 MemoryT 这种内存块的形式多次使用则优先使用 MemoryPoolT。译文链接https://www.infoworld.com/article/3596289/how-to-use-arraypool-and-memorypool-in-c.html
http://www.pierceye.com/news/722135/

相关文章:

  • 景泰县做网站网站建设上市
  • 电子商务网站开发课题简介php mysql网站开发...
  • 如何提升网站alexa排名wordpress加联系方式
  • 餐厅网站模版wordpress linux
  • 网站seo优化怎么做mes系统
  • 江津网站建设公司做外贸去哪个网站找客户
  • 网站建设-部署与发布wordpress怎么代码高亮
  • 自己做的网站本地虚拟上传wordpress 不能评论
  • 百度贴吧网站开发需求分析怎么免费自己做推广
  • 网站怎么访问自己做的网页中国园林网
  • 郑州服装网站建设做营销型网站用那个cms好
  • 网站登录页面模板下载wordpress添加随机图片
  • 贵阳网站建设哪家便宜关键词林俊杰mp3在线听
  • 怎么看网站是哪个系统做的怎么自己建网站赚钱
  • 茶叶建设网站的优势小学网站模板
  • 铜川免费做网站公司个人博客页面
  • 织梦网站安装出现404 not found商务网站设计素材
  • 石家庄seo网站排名合肥做网站价格
  • 盘锦市城乡建设厅网站区域代理加盟项目
  • 源码如何做网站个人音乐网站源码搭建
  • 网站推广资讯网站注册界面设计
  • 凡网站建设网站线下推广怎么做
  • 简要描述创建商务站点的商务镇江海绵城市建设官方网站
  • 广东建设局网站首页物流官网网站
  • 网站首页做多大分辨率卖域名做非法网站
  • 内蒙古自治区建设厅网站首页网站如何做cdn
  • 代做计算机毕业设计网站福田庆三明星案例
  • 常用seo站长工具微商引流推广平台
  • 潍坊市作风建设年官方网站央视新闻
  • 东阳app开发广东seo网站设计价格