代码之家  ›  专栏  ›  技术社区  ›  SoLaR

Visual Studio 2017 VC++平台工具集V141比V100慢,为什么?

  •  0
  • SoLaR  · 技术社区  · 8 年前

    我正在重写一些S3TC算法,在分析我正在测试的优化时,我使用的是vs2010。在我写完代码之后,决定在v141平台工具集上对它进行分析。克隆单独的解决方案,并将文件作为原始方案的克隆进行项目,并将解决方案加载到vs2017中。将分析过的项目重新定位到平台工具集v141,windowsdk10,清理并重建所有内容,做了几次。。。

    性能下降导致的分析 仅版本,而调试版本的值与vs2010调试非常相似。实测落差 释放 之后,我将目标重新定位到平台工具集v100,离开windowsdk10,重新构建所有内容。分析结果与vs2010分析结果相同。回到v141,性能下降了约11%。这告诉我,与v100平台工具集相比,v141平台工具集的c/c++编译器效率更低。

    以前是否有人遇到过这种情况,并发现了新一代编译器出现这种行为的原因?

    这是微软编译器团队中优秀程序员的垮台,还是我遗漏了一些东西?

    1 回复  |  直到 8 年前
        1
  •  2
  •   infixed    8 年前

    最近,针对CPU中投机性执行的攻击已经成为新闻,著名的例子是幽灵和崩溃。

    其中一种解决方法是在编译器中

    Understanding the performance impact of Spectre and Meltdown mitigations on Windows Systems

    “以下是[微软]迄今为止发现的情况摘要:

    随着Windows10在较老的硅芯片上运行(2015年时代的PC带有Haswell或较老的CPU),一些基准显示出更大的速度放缓,我们预计一些用户将注意到系统性能的下降。

    由于Windows 8和Windows 7采用的是较老的硅片(2015年时代的个人电脑采用Haswell或较老的CPU),我们预计大多数用户会注意到系统性能的下降。

    因此,使用包含这些缓解措施的编译器重新编译的程序很可能会对性能造成较小的影响。