当前位置:   article > 正文

.Net8新添加的高性能类型的介绍

net8

前言

.Net8这个版本,比之.Net7改动了非常多。本篇来看下它其中的一些类型性能的改动,官方推荐的旨在提高应用性能的新类型。

概括

1.System.Collections.Frozen
命名空间包括集合类型 FrozenDictionary<TKey,TValue> 和 FrozenSet。创建集合后,这些类型不允许对键和值进行任何更改。此要求可实现更快的读取操作(例如,TryGetValue())。对于在首次使用时填充,然后在长期服务期间保留的集合,这些类型特别有用,例如:

  1. private static readonly FrozenDictionary<string, bool> s_configurationData =
  2. LoadConfigurationData().ToFrozenDictionary(optimizeForReads: true);
  3. // ...
  4. if (s_configurationData.TryGetValue(key, out bool setting) && setting)
  5. {
  6. Process();
  7. }

2.System.Buffers.IndexOfAnyValues

类型旨在传递给在传递的集合中查找任何值的第一个匹配项的方法。例如,String.IndexOfAny(Char[]) 在调用它的 string 中查找指定数组中任何字符的第一个匹配项。NET 8 添加了新的方法重载,例如接受新类型实例的 String.IndexOfAny 和 MemoryExtensions.IndexOfAny。创建 System.Buffers.IndexOfAnyValues 的实例时,将在那时派生优化后续搜索所需的所有数据,这意味着工作是预先完成的。

3.System.Text.CompositeFormat
类型可用于优化编译时未知的格式字符串(例如,格式字符串是从资源文件加载的)。前面会花费一些额外的时间来完成诸如分析字符串之类的工作,但这可以节省每次使用时完成的工作。

4.System.Buffers.IndexOfAnyValues
类型旨在传递给在传递的集合中查找任何值的第一个匹配项的方法。例如,String.IndexOfAny(Char[]) 在调用它的 string 中查找指定数组中任何字符的第一个匹配项。NET 8 添加了新的方法重载,例如接受新类型实例的 String.IndexOfAny 和 MemoryExtensions.IndexOfAny。创建 System.Buffers.IndexOfAnyValues 的实例时,将在那时派生优化后续搜索所需的所有数据,这意味着工作是预先完成的。

5.System.Text.CompositeFormat
类型可用于优化编译时未知的格式字符串(例如,格式字符串是从资源文件加载的)。前面会花费一些额外的时间来完成诸如分析字符串之类的工作,但这可以节省每次使用时完成的工作。

  1. private static readonly CompositeFormat s_rangeMessage = CompositeFormat.Parse(LoadRangeMessageResource());
  2. // ...
  3. static string GetMessage(int min, int max) =>
  4. string.Format(CultureInfo.InvariantCulture, s_rangeMessage, min, max);

6.System.Numerics和System.Runtime.Intrinsics

System.Numerics和System.Runtime.Intrinsics名空间的改进。Vector256、Matrix3x2和Matrix4x4改进了.NET 8上的硬件加速.例如,Vector256 在可能的情况下已重新实现2xVector128。硬件内部函数现在使用 ConstExpected 属性进行批注。这可确保用户知道基础硬件何时需要常量,以及非常量值何时可能会意外损害性能。

结尾

作者:江湖评谈
参考:

https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/897219
推荐阅读
相关标签
  

闽ICP备14008679号