禁用/ Gm并启用/ MP后,VS2010的构建时间显着缩短。
我很担心为什么/ Gm是默认值。我认为/ MP更好。
(如果/ Gm已启用,/ MP由于不兼容而未激活.Activated / Gm比Activated / MP需要更多时间。)
答案 0 :(得分:17)
在我的头脑中,我可以想到几个原因:
使用/MP
选项改进构建时间取决于用户可用的处理器数量。 Visual Studio团队可能认为(还)假设每个人都有多个处理器是不合理的。 (请注意,就此类优化而言,HyperThreading不一定算作多个处理器。)
/MP
选项与某些编译器选项和语言功能不兼容。通常,默认情况下应尽量使兼容性最大化,即使以必要的速度牺牲速度也是如此。当选择将其设置为默认设置时,“更好”的东西不是评估的唯一标准。您不必破解手册以查看“D9030”或“C2813”编译器警告的含义以及为什么在VS2008上编译得很好的项目无法在VS2010上编译。
documentation更详细地解释了这些问题,甚至包括一些Guidelines如何确定启用/MP
选项是否是针对个别案例的最佳决策。
如果您发现自己必须发布有关是否应启用某项功能的指南,则默认情况下可能不应启用此功能。高级用户(不,这不是矛盾:不是每个使用Visual Studio的人都是高级用户,因为这个名称与相关产品有关),就像你可以自己决定他们是否想要启用这个选项。 / p>