C++|VS2022的智能感知性能提升了18倍

C++|VS2022的智能感知性能提升了18倍

文章图片

C++|VS2022的智能感知性能提升了18倍

文章图片


是的 , 就是这么直白 。
借助Visual Studio , 我们希望构建一套最佳开发工具来增强游戏开发人员的生产效率 。 我们与 Epic Games联手 , 为虚幻引擎(Unreal Engine)开发人员在Visual Studio 2022中带来更快的语义突出显示和智能感知(IntelliSense) 。
在今天的文章中 , 我们将详细介绍我们如何与虚幻引擎团队合作 , 实现新文件打开时智能感知启动时间的巨大优化 。 没错 , 18倍 。
“我们一直在努力解决虚幻引擎解决方案中的Intellisense的性能问题 , 但这些变化是需要日积月累的改进才能做到的 。 通过更快的反馈和更少的等待 , 有助于开发人员专注于制作出色的游戏 。 ” – Ben Marsh , Epic Games首席程序员
下面的测试结果显示了使用最新版的VS2022 预览版时打开Unreal Engine 4.27.1工程时的场景 。


测试环境我们在一台Intel Core i7-9700 @ 3Ghz处理器 , 64GB 内存和SSD硬盘的机器上打开Unreal 4.27.1的范例工程 , 并分别在VS2019 16.11.5和VS2022 预览版6中进行对比测试 , 测试结果是4次测试数据求平均值 。
测试结果在Visual Studio 2019上打开文件时 , IntelliSense需要11.0秒才能准备好并显示语义代码着色 。打开不同的文件需要相同的时间才能进入相同的状态 。关闭和重新打开同一个文件需要 1.0 秒才能达到就绪状态 。
相比之下 , Visual Studio 2022 第一个文件准备就绪需要7.2秒 , 任何后续文件需要0.4秒 。

分析在之前的旧VS版本中 , 项目中的每个翻译单元、C++和头文件都是从头开始的 , 它们之间没有状态重用 。 重新打开同一个文件需要1秒钟的时间; 但是 , 由于 PCH 不在文件之间共享 , 因此第一次打开任何文件需要相同的时间来启动并初始化IntelliSense 。
在使用 Visual Studio 2022 的 Unreal Engine 4.27.1 项目中 , 生成的项目文件被更新从而实现了翻译单元之间编译状态共享 。因此 , 在 Visual Studio 中切换文件时 , 语义代码着色和 IntelliSense的启动速度将大大加快(0.4 秒) 。
此外 , VS2022 中的C++ IntelliSense 改进能够将启动时间缩短1.5 倍 , 从 11 秒缩短到 7.4 秒 。这一变化将使所有使用 IntelliSense 的 C++ 开发人员受益 , 而不仅仅是虚幻引擎开发人员 。
在你的项目中试试看【C++|VS2022的智能感知性能提升了18倍】你需要在虚幻引擎编辑器中手动进行更新以应用更改 。
> 单击编辑 -> 编辑器首选项 -> 源代码
> 将源代码编辑器更改为”Visual Studio 2022″
> 单击文件 -> 刷新 Visual Studio 2022 项目
> 点击 File -> Open Visual Studio 2022 在 Visual Studio 中打开项目
如果你在处理虚幻引擎源代码时使用 GenerateProjectFiles.bat , 请使用“GenerateProjectFiles.bat -2022”生成更新后的项目文件 。
总结通过提升IntelliSense的启动时间 , 可以大大提升源文件打开速度 , 尽快地进入工作状态 。
对于大型工程 , 这点尤为可贵 。
最后Microsoft Visual C++团队的博客是我非常喜欢的博客之一 , 里面有很多关于Visual C++的知识和最新开发进展 。 大浪淘沙 , 如果你对Visual C++这门古老的技术还是那么感兴趣 , 则可以经常去他们那(或者我这)逛逛 。
本文来自:《18x Faster IntelliSense for Unreal Engine Projects in Visual Studio 2022》