Ответ 1
Сверху моей головы я могу думать о нескольких причинах:
-
Улучшение времени сборки с опцией
/MP
зависит от количества доступных пользователю процессоров. Команда Visual Studio, вероятно, не считает разумным (пока) предположить, что у каждого есть несколько процессоров. (Обратите внимание, что HyperThreading не обязательно учитывается как несколько процессоров, когда речь заходит об оптимизации, подобные этой.) -
Параметр
/MP
несовместим с некоторыми параметрами компилятора и языковыми функциями. Как правило, значения по умолчанию должны пытаться максимизировать совместимость, даже если это необходимо, за счет скорости. То, что что-то "лучше", не является единственным критерием оценки, когда вы выбираете его по умолчанию. Вам не нужно открывать руководство, чтобы узнать, что означают предупреждения компилятора "D9030" или "C2813", и почему ваш проект, который отлично компилируется на VS2008, не будет компилироваться на VS2010.
Документация объясняет эти проблемы более подробно и даже включает некоторые Guidelines о том, как определить, является ли включение опции /MP
лучшим решением для отдельных случаев.
В любое время, когда вам приходится публиковать рекомендации о том, следует ли включить функцию, она, вероятно, не должна быть включена по умолчанию. Продвинутые пользователи (и нет, это не оксюморон: не все, кто использует Visual Studio, являются продвинутым пользователем, потому что это обозначение относится к рассматриваемому продукту), как вы сами можете решить, хотят ли они включить эту опцию.