MSVC:Windows的最佳选择

微软的C++产品团队在VisualStudioIDE、VisualStudio代码编辑器和各种其他工具和服务中提供了一个伟大的C++体验。这包括博客帖子的主题:微软Visual C++编译器和库工具集(MSVC)。

null

无论您选择使用什么编辑器或IDE,MSVC的目标是成为Windows上针对Windows的最佳编译器选择。我们的目标是在以下关键领域持续投资:完全C++一致性、更好的错误和警告、运行时性能、可靠性、生成吞吐量和最佳安全性。让我们更详细地看看每一个。

最佳C++一致性

在编译时,与C++标准完全一致是我们的首要任务。我们专门写了一篇帖子,讨论我们的合规之路。请去看书 C++标准与微软的一致性 .

更好的错误和警告

有效的编译器诊断是困难的。我们知道,在许多地方,我们的警告和错误可以得到改善。我们从小处着手,指出 MSVC诊断中的列号 . 但是,在改进的诊断领域还有更具针对性的工作要做:三元运算符的一致性行为、错误代码的遗漏诊断、通用错误代码的详细延续消息、系统头的更好的警告级别配置等等。在接下来的几个月里,你可以在这个博客上找到更多的细节。

类似地,我们在C++代码分析中生成的警告的质量和多样性方面取得了很大的进展。一个很好的例子就是 C++核心指南检查器,作为VS 2017的一部分 . 这些棋盘格是用来执行游戏规则的 C++核心指南 ,这是一种跨行业的编码标准,可以帮助您编写设计正确的代码。

我们最近在C++代码分析方面做了一些改进。我们对的基本规则集进行了改进 VS 2017代码分析 而在 C++核心指南检查器 .

代码生成和优化(代码的运行时性能)

我们有三个目标来优化您的代码,我们的目标是在每个领域都做到最好:

  1. 代码的运行时性能:我们希望它尽可能快地运行。
  2. 可靠性和正确性:如果代码做了错误的事情,那么它的速度有多快并不重要。我们首先关注编译器的可靠性和正确的代码生成。
  3. 安全 :许多工具从“机箱外”搜索内存漏洞。我们的优化器包含强大的技术,使您的代码安全无需工具。

关于运行时性能,我们的优化框架在VS 2015 Update 3中进行了大量重写。 MSVC新的SSA(静态单任务)优化框架 为我们如何让您的代码运行得更快开辟了新的可能性。我们在VS2017中利用了这个新的优化框架,使您的代码更快。

优化不仅仅是关于速度:它是关于正确性。我们每天通过构建Windows和Office以及50多个OSS项目来测试我们的编译器、库和优化器。我们还有将近一百万个定制的编写的回归测试,这些测试在每次源代码变更签入时都会运行,全套测试每天还要进行几十万个测试,以及性能和吞吐量测试。

有许多工具试图让您的代码从盒子外安全:Valgrind和地址/线程清理器是流行的例子。在Windows上也有很多这样的工具,微软和其他公司都有。但是MSVC在编译器内部提供了强大的技术,可以将安全性与代码集成在一起。例如, 控制流护罩 ,是一种高度优化的安全功能,可消除许多内存损坏漏洞。我们不能公开谈论我们目前的安全研究,但我们一直在努力使您的代码(和我们的!)远离日益复杂的攻击者。

构建吞吐量

我们还大大提高了构建吞吐量:使编译器工具集更快地编译代码。功能如 /debug:fastlink 与2015年相比,连接时间缩短了2-4倍 . 在VS 2017中,功能改进 /debug:fastlink 额外减少30%的链接时间。下面是关于如何使用的更多建议 /debug:fastlink 以及其他加快构建时间的技术 .

如何获取最新的MSVC工具集?

获取编译器和库工具集的最佳方法是作为最新版本的visualstudio的一部分。 对VS安装程序的主要更改允许您只安装所需的部件 . 你可以安装C++的工作负载,而不需要安装其他语言,如果你喜欢的话。您还可以选择安装特定C++场景的工作负载。

你甚至可以在你的构建机器上安装C++的构建工具,而不需要安装VS IDE。这些工具与VS 2017安装的工具相同,但用于构建机器。通常不需要在构建机器上安装IDE,因为在构建机器上没有开发。使用VS 2017,您可以选择 只安装MSVC工具集 在可编写脚本的独立安装程序中。

如果您想查看自上次VS更新以来实现的新功能,该怎么办?我们创造了一个简单的方法 试用一个带有易于安装的NuGet包的新工具集 安装在C++项目或解决方案中。我们还帮助将编译器工具集集成到 gcc.godbolt.org上的编译器资源管理器 这是一个流行的Web应用程序,它可以让你比较C++编译器工具集的编译器特性和代码生成。

对于图书馆,我们创建了 特定于Windows的库包管理器 这使您可以快速方便地直接从repos安装许多开源库。我们从您在调查中建议的库的初始列表开始,再加上一些来自GitHub的最受欢迎的库。可以使用VCPkg安装的受支持库的数量一直在增长。

最后

一如既往,我们欢迎您的反馈。欢迎通过电子邮件发送任何评论 visualcpp@microsoft.com ,通过 推特@visualc ,或Facebook Microsoft Visual Cpp .

如果您在VS 2017遇到MSVC的其他问题,请通过 报告问题 选项,从安装程序或VisualStudioIDE本身。如需建议,请告知我们 用户语音 . 谢谢您!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享