在禁用/Gm并启用/MP之后,VS2010的构建时间显著减少。
我对为什么/Gm是默认设置感到困惑,我认为/MP更好。
(如果启用/Gm,则由于不兼容性,/MP不会被激活。激活/Gm需要比激活/MP需要更多的时间。)
我对为什么/Gm是默认设置感到困惑,我认为/MP更好。
(如果启用/Gm,则由于不兼容性,/MP不会被激活。激活/Gm需要比激活/MP需要更多的时间。)
我能想到几个原因:
/MP
选项在构建时间上的改进取决于用户可用的处理器数量。Visual Studio 团队可能认为(目前)假定 每个人 都有多个处理器不太合理。(请注意,超线程在像这样的优化中并不一定算作多个处理器。)
/MP
选项与某些编译器选项和语言特性不兼容。通常,缺省值应尽量最大化兼容性,即使需要牺牲速度。选择将其设置为默认设置时,“更好”不是唯一的评估标准。您不应该打开手册查看“D9030”或“C2813”编译器警告意味着什么,以及为什么在 VS2008 上编译正常的项目在 VS2010 上无法编译。