我们将继续回顾 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列出了如下已知的局限:
- 任何需要升级(从之前的 Visual Studio 版本)的工程应该在启用 FPL 之前升级;
- 重要的是,不支持解决方案构建;
- 由于信息是按需加载的,所以在某些情况下,对大型工程的修改可能会导致额外的加载时间;
- 任何需要检查整个解决方案层次结构的插件会抵消 FPL 所带来的好处。
当前,FPL 是独立于轻量级解决方案加载特性的。将来,VS15 的一个候选版本会将 FPL 和轻量级解决方案加载特性合并成一个性能改进特性。在 TP5 中,现在可以通过 Options|C/C++|Experimental 将“Enable Faster Project Load”标记为真来启用 FPL。
评论