Visual Studio 15 改进 C++ 工程加载

  • Jeff Martin
  • 谢丽

2016 年 11 月 2 日

话题:.NETC++语言 & 开发

我们将继续回顾 Visual Studio 15 的性能改进部分,本文将介绍一个应该可以为 C++ 开发人员提供帮助的新功能。该新特性专门针对 C++ 工程,其名称为“快速工程加载(Faster Project Load,缩写为 FPL)”。我们已经讨论过,VS15 有一项名为“轻量级解决方案加载(Lightweight Solution Load)”的新特性,但那只对纯 C++ 解决方案有一定的好处。按照设计,FPL 是为了提升 VS15 处理较大 C++ 工程时的速度。

在 Visual Studio 打开一个解决方案时,需要消耗时间和内存来评估其中的所有工程,生成每个工程的构建信息,并创建数以百万计的对象来描述该解决方案。你可以想象,这会导致内存和性能限制。VS15 技术预览版 5新增了 SQLite 数据库层,让程序可以根据需求检索与解决方案相关的信息,而不是启动时一次性获取。

目前,FPL 尚处于试验阶段,它在 TP5 中出现更多的似乎是一种概念验证,而不是已经生产就绪。关于 FPL,来自微软的 Ankit Asthana列出了如下已知的局限:

  1. 任何需要升级(从之前的 Visual Studio 版本)的工程应该在启用 FPL 之前升级;
  2. 重要的是,不支持解决方案构建;
  3. 由于信息是按需加载的,所以在某些情况下,对大型工程的修改可能会导致额外的加载时间;
  4. 任何需要检查整个解决方案层次结构的插件会抵消 FPL 所带来的好处。

当前,FPL 是独立于轻量级解决方案加载特性的。将来,VS15 的一个候选版本会将 FPL 和轻量级解决方案加载特性合并成一个性能改进特性。在 TP5 中,现在可以通过 Options|C/C++|Experimental 将“Enable Faster Project Load”标记为真来启用 FPL。

查看英文原文Visual Studio 15 Improves C++ Project Loading

.NETC++语言 & 开发