Как заставить Windows работать так же быстро, как Linux, для компиляции C ++?

Я знаю, что это не столько вопрос программирования, сколько актуальный

Я работаю над довольно большим кроссплатформенным проектом . В Windows я использую VC ++ 2008. В Linux я использую gcc. В проекте около 40к файлов. Windows в 10-40 раз медленнее, чем Linux при компиляции и компоновке одного и того же проекта. Как я могу это исправить?

Инкрементальная сборка с одним изменением 20 секунд в Linux и> 3 минут в Windows. Зачем? Я даже могу установить «золотой» компоновщик в Linux и сократить это время до 7 секунд.

Точно так же git в Linux в 10-40 раз быстрее, чем в Windows.

В случае git возможно, что git не использует Windows оптимальным образом, но VC ++? Можно подумать, что Microsoft захочет сделать своих разработчиков максимально продуктивными, и более быстрая компиляция будет иметь большое значение для этого. Может быть, они пытаются подтолкнуть разработчиков к использованию C #?

В качестве простого теста найдите папку с множеством подпапок и выполните простой

dir /s > c:\list.txt

в Windows. Сделайте это дважды и рассчитайте время второго запуска, чтобы он запускался из кеша. Скопируйте файлы в Linux и выполните 2 эквивалентных запуска и время второго запуска.

ls -R > /tmp/list.txt

У меня есть 2 рабочие станции с одинаковыми характеристиками. HP Z600 с 12 ГБ оперативной памяти, 8 ядер на 3,0 ГГц. В папке с ~ 400 КБ файлов Windows занимает 40 секунд, Linux -

Есть ли параметр реестра, который я могу установить для ускорения Windows? Что дает?


Несколько слегка релевантных ссылок, относящихся к времени компиляции, не обязательно ввода-вывода.

139
задан gman 10 July 2017 в 07:35
поделиться