根据我的经验,提高应用程序性能的主要方法是减少IO调用的次数和持续时间。然而,一旦执行了这个选项,开发人员采取的另一种方式就是在堆栈上使用内存。堆栈允许非常快的分配和释放,尽管它应该只用于分配小的部分,因为堆栈大小是非常小的。另外,使用堆栈可以减少GC的压力。为了在堆栈上分配内存,将值类型或stackalloc操作符与非托管内存的使用结合使用。
第二个选项很少被开发人员使用,因为用于非托管内存访问的API非常冗长。
Span<T>是C# 7.2中到达的一组值类型,它是来自不同来源的内存的无分配表示。Span<T>允许开发人员以更方便的方式处理连续内存区域,确保内存和类型安全。