高性能包简介
CommunityToolkit.HighPerformance
包含用于高性能应用场景的帮助程序和扩展。 此包可以通过 NuGet 安装,并且包含以下多目标:
- .NET Standard 2.0
- .NET Standard 2.1
- .NET 6
- .NET 7
这意味着,你可以通过以下任何途径使用它:UWP 或旧版 .NET Framework 应用程序、用 Unity 编写的游戏、使用 Xamarin 的跨平台移动应用程序、.NET Standard 库、新式 .NET 6 以及 .NET 7 应用程序。 API 图面在所有情况下几乎都相同,并且已经投入大量工作来将尽可能多的功能向后移植到 .NET Standard 2.0 等较旧的目标。 除了一些细微差别外,可以预期的是,所有目标框架上都提供相同的 API。 使用多目标的原因是允许包尽可能利用新式运行时(如 .NET 7)上的所有最新 API,同时仍向所有目标平台提供大部分功能。
使用入门
若要在 Visual Studio 中安装包:
在“解决方案资源管理器”中,右键单击项目并选择“管理 NuGet 包”。 搜索“CommunityToolkit.HighPerformance”并安装它。
添加 using 或 Import 指令以使用新 API:
using CommunityToolkit.HighPerformance;
Imports CommunityToolkit.HighPerformance
代码示例可从 MVVM 工具包的其他文档页和项目的单元测试中获取。
应何时使用此包?
顾名思义,高性能包包含一组以优化作为主要侧重点的 API。 所有新 API 都经过精心设计,以便在使用它们时实现最佳性能,无论是通过减少内存分配、在程序集级别进行微优化,还是通过构建 API 来推进编写以性能为导向的代码。
此包大量使用 API,例如:
System.Span<T>
System.Memory<T>
System.Buffers.ArrayPool<T>
System.Runtime.CompilerServices.Unsafe
System.Runtime.InteropServices.MemoryMarshal
System.Threading.Tasks.Parallel
如果你已经熟悉这些 API,或者刚开始使用 C# 编写高性能代码,希望获取一组经过充分测试的帮助程序来用于自己的项目,请查看此包中包含的内容,了解如何在自己的项目中使用!
在哪里开始?
下面是一些可以首先查看的 API(如果已在使用上述类型之一):
Span2D<T>
和Memory2D<T>
,用于在 2D 内存上进行类似于Span<T>
和Memory<T>
的抽象化处理MemoryOwner<T>
和SpanOwner<T>
(如果使用的是System.Buffers.ArrayPool<T>
)。StringPool
,用于缓存string
实例的类ArrayPool<T>
类型ParallelHelper
(如果使用的是System.Threading.Tasks.Parallel
)。
其他资源
可以在单元测试中查找更多示例。