Как оптимизировать компиляцию 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)


arrow_upward
1
arrow_downward

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

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

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

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

person Nils Pipenbrinck    schedule 19.09.2008

arrow_upward
1
arrow_downward

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

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

person Mike Dimmick    schedule 19.09.2008