架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1076|回复: 1

[交流] 【转】.NET 8 新添加的高性能类型的介绍

[复制链接]
发表于 2023-5-7 09:37:47 | 显示全部楼层 |阅读模式
前言

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

概括

1.System.Collections.Frozen

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

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

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

6.System.Numerics和System.Runtime.Intrinsics

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

参考:https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-8
原文:https://mp.weixin.qq.com/s/EMvJcu9WzQpCmi2ouzRBQw





上一篇:VSTO(六)取消或阻止 Word 文档保存
下一篇:ASP.NET Core(十八)自定义简单的 OutputCache 输出缓存
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-5-7 15:36:17 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-27 18:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表