前言
我们都知道,.Net Core是微软推出的一个通用开发平台,它是跨平台和开源的,由一个.NET运行时、一组可重用的框架库、一组SDK工具和语言编译器组成,旨在让.Net developers可以更容易地编写高性能的服务应用程序和基于云的可伸缩服务,比如微服务、物联网、云原生等等;在这些场景下,对于内存的消耗往往十分敏感,也十分苛刻;为了解决这个棘手问题,同时释放应用开发人员的精力,让他们能够安心地使用Net Core,而不用担心这些应用场景下的性能问题,故从.NET Core 2.1开始引进了两个新的旗舰类型:Span<T> 、Memory<T> ,使用它们可以避免分配缓冲区和不必要的数据复制。
前面已经对span做了详细地讲解,所以今天主题是Memory,同样以Why、What和How的方式缓缓道来 ,让你知其然,更知其所以然。
Memory<T>是Span的补充,它是为了解决Span无法驻留到堆上而诞生的,可以说Span是Memory的奠基,故在读这篇文章前,请先仔细品读前面两篇文章:

最后
如果有什么疑问和见解,欢迎评论区交流。
如果你觉得本篇文章对您有帮助的话,感谢您的【推荐】。
如果你对.NET高性能编程感兴趣的话可以【关注我】,我会定期的在博客分享我的学习心得。
欢迎转载,请在明显位置给出出处及链接。延伸阅读
https://en.wikipedia.org/wiki/Reference_counting
https://msdn.microsoft.com/en-us/magazine/mt814808
https://blogs.msdn.microsoft.com/oldnewthing/20040406-00/?p=39903
https://github.com/dotnet/corefxlab/blob/master/docs/specs/memory.md
https://blogs.msdn.microsoft.com/dotnet/2018/05/30/announcing-net-core-2-1
https://docs.microsoft.com/zh-cn/dotnet/api/system.memory-1?view=netcore-2.2
https://frameworkbenchmarks.readthedocs.io/en/latest/Project-Information/Framework-Tests
https://blogs.msdn.microsoft.com/dotnet/2018/07/09/system-io-pipelines-high-performance-io-in-net
https://www.codemag.com/Article/1807051/Introducing-.NET-Core-2.1-Flagship-Types-Span-T-and-Memory-T
