VS2022性能提升更快的C代码索引

基于VisualStudio.3版本的性能提升,我们在新的17.4版本中添加了更多的小优化,且听我慢慢道来。

不论你是一个工作在大型代码库下的游戏开发者,或者你在解决方案中有非常多的C++工程,在VisualStudio.4中,你都会感受到前所未有的”快”。

在17.4中,我们优化了C++工程首次加载(冷载)下的启动时间。

当我们做这些优化的时候,我们也同时考虑这些优化措施在真实世界中的大型C++工程的表现,除了测试我们自己的工程之外,我们还测试了那些比较流行的大型游戏工程。

大型C++工程在填充用于浏览和导航的源代码数据库时,速度可能比17.3提高了20-36%。

与VS相比,此方案的累积性能增益应在2倍-6倍之间,具体取决于项目结构和规模。

在今天这篇文章中,我们想重点介绍《战争机器》(GearsofWar)源代码和通用虚幻引擎5入门项目的C++工程的代码索引场景。

测试环境

硬件:AMDRyzen(锐龙)PROWX12/24,GB内存,2.5TB固态硬盘,RTX

工程/源代码:战争机器、虚幻引擎5入门项目、Chromium

VisualStudio:VSv16.11和VSv17.4

对于所有测试场景,我们使用了VS的系统事件/日志来跟踪操作的持续时间。

测试结果

让我们看看过去一年我们在这一领域为C++工程所做的所有改进的累积效应。

在VisualStudio16.11中,GearsofWar大约需要6分半钟才能完全索引。在VisualStudio.4中,等待索引完成只需要2分半钟多一点,从而将速度提高2.5倍。

在新的虚幻引擎5解决方案中编写代码时,你会看到,最新版本的VS与VS相比有了巨大的改进。在VS16.11中,完全索引全新的UE5C++解决方案需要2分半钟多一点的时间。使用VS.4时,将同一UE5解决方案完全索引现在只需1分钟即可提高2.7倍。无论你是创建新的UE5项目还是从现有存储库克隆,你的代码在17.4中都会更快地索引。

突破极限

很少有开源项目达到Chromium的规模,在一个VisualStudio解决方案中有超过个项目,因此自然而然地,它是对我们正在改进的组件进行压力测试的不可抗拒的目标。让我们看看我们是如何做到的。

在VisualStudio16.11中,Chromium存储库大约需要31分钟才能完全索引。在VisualStudio.4中,等待索引完成只需5分钟,速度提高了6倍。首次索引大型解决方案(如Chromium存储库)时,使用最新版本的VisualStudio最多可节省26分钟。

试试看

尽管每个人都应该看到这些方案的显着改进,但收益的大小取决于你的源代码、项目布局、代码架构等。因此,请在你的代码库中试用它,看看你的使用体验是否如这里所说的那样”快”,正所谓:光说不练假把式。

总结

我挠破了头皮也没想明白两个问题:老大哥你为什么这么强?Chromium有个工程?Holly席特!(战术后仰:什么叫大型C++工程!)看来,革命还未成功,我还需努力啊。

最后

MicrosoftVisualC++团队的博客是我非常喜欢的博客之一,里面有很多关于VisualC++的知识和最新开发进展。大浪淘沙,如果你对VisualC++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。本文来自:《VisualStudioPerformance:FasterC++SourceCodeIndexing》




转载请注明:http://www.aierlanlan.com/cyrz/5853.html