本文介绍零长度数组分配的性能见解。
原因
在 .NET 中分配零长度数组可能会导致不必要的内存分配。 这些分配虽然很小,但可能会累积并导致性能问题,尤其是在高性能或内存受限应用程序中。
性能见解说明
分配零长度数组时,将导致不需要的内存分配。 使用由 Array.Empty<T>()
方法提供的静态分配的空数组实例,而不是创建新的数组,而不是创建新数组。 此方法返回指定类型的缓存空数组,从而避免新分配的开销。
如何调查警告
单击 “调查”链接,转到显示分配的零长度数组的 分配 视图。 双击分配会显示发生分配的代码路径。 请考虑使用由 Array.Empty<T>()
提供的静态分配的空数组实例减少这些分配。
下面是空数组分配及其解析的示例:
违反:
class Example
{
public void Method()
{
var array = new int[0];
}
}
分辨率:
class Example
{
public void Method()
{
var array = Array.Empty<int>();
}
}
其他资源
有关避免零长度数组分配和其他性能最佳做法的详细信息,请参阅以下资源:
通过遵循这些准则,可以确保应用程序针对性能进行优化,并避免不必要的内存开销。