Я знаю, что это не столько вопрос программирования, сколько актуальный
Я работаю над довольно большим кроссплатформенным проектом . В 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? Что дает?
Несколько слегка релевантных ссылок, относящихся к времени компиляции, не обязательно ввода-вывода.
По-видимому есть проблема в Windows 10 (не в Windows 7), из-за которой закрытие процесса удерживает глобальную блокировку . Эта проблема возникает при компиляции с использованием нескольких ядер и, следовательно, нескольких процессов.
Параметр / analysis
может отрицательно повлиять на производительность, поскольку он загружает веб-браузер . (Здесь неактуально, но полезно знать)