Я вижу смешанные результаты с более быстрыми машинами. Конечно, более быстрая машина скрывает низкое качество производительности vs2005, но не все.
Просто возьмите обязательную программу на C / C ++ "hello world", просто скомпилируйте ее, (CL / c helloword.cpp),
#include <stdio.h>
#include <windows.h>
int main(char argc, char *argv[])
{
printf("Hello World\n");
return 0;
}
Я вижу 1 секундный компилятор под Vc6 и 6 секундный компилятор под VS2005.
Используя DEPENDS для профилирования двух, я вижу 3 области, где происходят 5-секундные задержки и различное время:
~2.5 secs with ADVAPI32.DLL, CryptGetHashParam()
~1.5 secs with OLE2.DLL, StringFromGUID2()
~1.0 secs with C2.DLL, _AbortCompilerPass()
Опять же, это просто компиляция, а не ссылка. Исполняемые файлы / библиотеки компиляторов VC8 + ссылаются на подсистемы, такие как crypto API, Registry по какой-то прозрачной причине и добавляют огромные накладные расходы к прямым и чистым компиляциям.
Хотя более быстрая машина может скрывать некоторые замедления скрытия, можно только задаться вопросом, может ли Microsoft оптимизировать компилятор, предлагая варианты, которые отключают ненужные ссылки на служебные данные. Я понимаю, что лучший компилятор идет с некоторыми накладными расходами, но я вижу, что снижение времени компиляции на 300-500% - это ужасно.
Гектор Сантос, технический директор
Santronics Software