Как оптимизировать компиляцию 32-битного приложения в Visual C++ 2005 на 64-битном Windows Sever 2008

Я только что установил сервер сборки с 64-битным сервером Windows 2008 для непрерывной интеграции.

Причина, по которой я выбрал 64-битный сервер, заключалась в том, чтобы иметь более ~ 3 ГБ ОЗУ. Я надеялся, что эта машина обеспечит молниеносную скорость сборки.

К сожалению, результата, мягко говоря, не хватает. Мой рабочий стол обеспечивает более быструю сборку, чем этот сервер, оснащенный четырехъядерным процессором Xeon, SAS со скоростью 15 000 об/мин и 8 гигабайтами оперативной памяти.

Мы используем Visual C++ 2005 для компиляции нашего 32-битного приложения с помощью Cygwin.

Может ли эмулятор WOW64 быть узким местом, замедляющим процесс сборки?

Любые указатели, комментарии будут очень признательны.

С уважением,


person Julien Nephtali    schedule 19.09.2008    source источник


Ответы (2)


Мы используем Visual C++ 2005 для компиляции нашего 32-битного приложения с помощью Cygwin.

Я думаю, это проблема. Мне очень нравится Cygwin, но он действительно медленный, когда дело доходит до файлового ввода-вывода. Немного помогает деактивировать функцию файловой системы NTFS, чтобы отслеживать последний доступ к файлу.

Чтобы получить лучшее ускорение скорости, портируйте ваш build-script / makefile, чтобы использовать собственную командную оболочку, если это возможно, и вызывать cygwin-tools только в том случае, если действительно нет доступной замены.

Если вы используете компилятор gcc, попробуйте версию mingw. Тот намного быстрее.

person Nils Pipenbrinck    schedule 19.09.2008

WOW64 не является эмулятором на x64. Процессор изначально выполняет 32-битный код x86. В нижней части стека пользовательского режима, в et al kernel32, находятся библиотеки DLL, которые сопоставляют системные вызовы с 64-битным интерфейсом вызовов.

См. Подробности реализации WOW64.

person Mike Dimmick    schedule 19.09.2008