Как оптимизировать компиляцию 32-битного приложения в Visual C++ 2005 на 64-битном сервере Windows 2008
-
01-07-2019 - |
Вопрос
Я только что установил сервер сборки с 64-битным сервером Windows 2008 для непрерывной интеграции.
Причина, по которой я выбрал 64-разрядный сервер, заключалась в том, что у меня было более ~3 ГБ оперативной памяти.Я надеялся, что эта машина обеспечит невероятно быструю сборку.
К сожалению, результата, мягко говоря, сильно не хватает.Мой настольный компьютер обеспечивает более быструю сборку, чем этот сервер, оснащенный четырехъядерным процессором Xeon, SAS со скоростью 15 000 об/мин и 8 ГБ оперативной памяти.
Мы используем Visual C++ 2005 для компиляции нашего 32-битного приложения с помощью Cygwin.
Может ли эмулятор WOW64 стать узким местом, замедляющим процесс сборки?
Любые указатели, комментарии будут очень признательны.
С уважением,
Решение
Мы используем Visual C ++ 2005, чтобы скомпилировать наше 32 -битное приложение с Cygwin.
Я думаю, в этом проблема.Мне очень нравится Cygwin, но это Действительно медленный, когда дело доходит до файлового ввода-вывода.Немного помогает деактивация функции файловой системы NTFS, чтобы отслеживать последний доступ к файлу.
Чтобы получить более высокую скорость, перенесите свой сценарий сборки/makefile, чтобы использовать встроенную командную оболочку, если это возможно, и вызывайте cygwin-tools только в том случае, если действительно нет доступной замены.
Если вы используете компилятор gcc, попробуйте версию mingw.Это намного быстрее.
Другие советы
WOW64 не является эмулятором на x64.Процессор изначально выполняет 32-битный код x86.Внизу стека пользовательского режима, под kernel32. и другие, представляют собой библиотеки DLL, которые сопоставляют системные вызовы с 64-битным интерфейсом вызовов.
Видеть Детали реализации WOW64.