scons md5-sums файлы, чтобы выяснить, что они изменили, так что это в значительной степени md5sums все ваши файлы.
Вы можете сказать ему, чтобы использовать только временные метки, чтобы решить, что нужно перестроить и не использовать MD5sum все файлы каждый раз, как «make», что должно ускорить процесс. Это может быть более хрупким. например если файл был изменен в течение 1 секунды в последний раз, когда он был построен, счёты не заметят этого. Используйте
env.Decider('timestamp-newer')
Там также MD5-метка времени, которая будет проверять метку времени, а затем сравнить содержимое с помощью md5, если он на самом деле изменилось, если временная метка новее.
env.Decider('MD5-timestamp')
Еще один простой способ ускорить работу - запустить параллельное здание с использованием параметра -j.
scons -j 2
На моей 2-сердечной коробке -j 3 обычно дает наибольшее ускорение.
Некоторые данные о том, что делают scons, могут быть сделаны с аргументом --debug для вызова scons, см. Справочную страницу для различных опций.
В SCons не используется средство проверки зависимостей GCC, оно имеет собственный набор регулярных выражений на основе Python для поиска. Использование -системы выполняется быстрее, потому что вы скрываете все эти заголовки от SCons. Если какой-либо из этих заголовков изменится, SCons не может сказать. Что вы делаете, это, по сути, отбраковка большого блока DAG, представленного неявными зависимостями (заголовками). Это ускоряет шаг прохождения за счет правильности. – BenG