内容提要
Visual Studio 2022版本17.10带来了新的优化、内部函数、功能和改进,包括所有架构的性能提升、调试时改进的变量可见性、针对.NET Core的托管C++二进制代码覆盖率以及ASAN代码生成的显著改进。此外,还针对ARM64进行了新功能和性能改进,包括启用可选的Arm A-Profile架构特性和支持Arm64内部函数。对于x86和x64,还进行了优化和新功能的开发,包括改进的向量化和对AVX512和AVX2指令的支持。建议用户下载最新的Visual Studio 2022以体验这些改进。
延伸解读
SLP向量化器的改进与使用
17.10 中 SLP 向量化器得到增强,能在更多函数上运行、识别更多操作,并可根据 /arch 标志选择更宽的向量宽度。开发者可使用 /Qvec-report:1 开关查看信息 C5003 来确认哪些代码块被向量化,从而评估优化效果。
ARM64 架构特性启用方式
新增 /feature (ARM64) 标志,允许为指定 ARM64 扩展启用一个或多个可选的 Arm A-Profile 架构特性。也可通过更新后的 /arch ARM64 选项指定,例如启用 FEAT_LSE 可使用 /feature:lse 和 /arch:armv8.0,或仅用 /arch:armv8.0+lse。注意目前 MSVC 仅支持部分 ARM64 特性。
ASAN 代码生成改进
ASAN 代码生成有显著改进,修复了代码生成错误并减少了假阴性。现在 ASAN 在内联存在时会发出更多检查,有助于更早发现内存错误。同时,PDB 处理代码也进行了安全改进。
x86/x64 新指令与内部函数
x64 上新增对 AVX512 的 8 位类型乘法向量化支持,以及 AVX2 和 AVX512 的可变位移指令。Intel Lion Cove 的内部函数也已加入,包括 AVX-VNNI-INT16、SHA512、SM3 和 SM4 相关指令,为开发者提供更多硬件加速选择。
Q&A
Visual Studio 2022版本17.10有哪些主要的新功能?
该版本带来了新的优化、内部函数、性能提升和对.NET Core的支持等多项新功能。
ARM64架构在Visual Studio 2022版本17.10中有哪些改进?
新增了可选的Arm A-Profile架构特性支持,优化了Arm64 CRT函数,并增加了Arm64内部函数。
Visual Studio 2022版本17.10对x86和x64架构做了哪些优化?
对x86和x64进行了向量化优化,支持AVX512和AVX2指令,提升了性能。
ASAN代码生成在新版本中有哪些显著改进?
ASAN代码生成减少了代码生成错误和假阴性,并在内联时增加了更多检查。
如何启用Visual Studio 2022中的新ARM64特性?
可以使用/feature (ARM64)标志启用一个或多个可选的Arm A-Profile架构特性。
为什么建议用户下载最新的Visual Studio 2022?
因为新版本包含了多项性能提升和新功能,能够改善开发体验。