Я знаю, что это не столько вопрос программирования, сколько актуальный.
Я работаю над довольно крупным кроссплатформенным проектом . В Windows я использую VC ++ 2008. В Linux я использую gcc. В проекте около 40к файлов. Windows в 10-40 раз медленнее, чем Linux при компиляции и компоновке одного и того же проекта. Как я могу это исправить?
Инкрементальная сборка с одним изменением 20 секунд в Linux и> 3 минут в Windows. Зачем? Я даже могу установить «золотой» компоновщик в Linux и сократить это время до 7 секунд.
Точно так же git в 10-40 раз быстрее в Linux, чем в Windows.
В случае git возможно, что git не использует Windows оптимальным образом, но VC ++? Можно подумать, что Microsoft захочет сделать своих разработчиков максимально продуктивными, и более быстрая компиляция будет иметь большое значение для этого. Может быть, они пытаются подтолкнуть разработчиков к C #?
В качестве простого теста найдите папку с большим количеством подпапок и выполните простой
dir /s > c:\list.txt
в Windows. Сделайте это дважды и рассчитайте время второго запуска, чтобы он запускался из кеша. Скопируйте файлы в Linux и выполните 2 эквивалентных запуска и время второго запуска.
ls -R > /tmp/list.txt
У меня две рабочие станции с одинаковыми характеристиками. HP Z600 с 12 ГБ оперативной памяти, 8 ядер на 3,0 ГГц. В папке с ~ 400 КБ файлов Windows занимает 40 секунд, Linux - менее 1 секунды.
Есть ли параметр реестра, который я могу настроить для ускорения работы Windows? Что дает?
Несколько слегка релевантных ссылок, относящихся ко времени компиляции, не обязательно ввода-вывода.
По-видимому , в Windows 10 (не в Windows 7) есть проблема, заключающаяся в том, что закрытие процесса удерживает глобальную блокировку . Эта проблема возникает при компиляции с несколькими ядрами и, следовательно, с несколькими процессами.
Этот
/analyse
параметр может отрицательно повлиять на производительность, поскольку он загружает веб-браузер . (Здесь не актуально, но полезно знать)