Как сократить время компиляции с Boost MSM

У меня есть корневой конечный автомат с около 40 переходами (включая четыре подсостояния машины). Все работало хорошо, но когда я начинаю поднимать число переходов, время компиляции значительно увеличивается (разработка большого конечного автомата превращается в ад). Я попытался использовать политику boost :: msm :: back :: favour_compile_time и разделить подмашины на несколько модулей перевода, но это не имеет никакого эффекта. У кого-нибудь есть решение этой проблемы?
Boost — 1,53, компилятор — MSVC 2012, процессор — Intel i7


Upd: Лучший способ сократить время — убрать надстройку msm из проекта

4

Решение

«но это не имеет эффекта»

Я думаю, что идея состоит в том, что разделение между TU ускоряет работу / потому что / вам не всегда нужно перестраивать TU, не обязательно, чтобы чистая перестройка была бы быстрее.

На самом деле, я ожидаю, что (непараллелизированная) сборка будет медленнее для большего количества TU, потому что каждый TU заканчивается включением 99% того же кода в заголовках. Предварительно скомпилированные заголовки могут несколько облегчить это.

В связи с этим добавляем соответствующие заголовки (а также препроцессор #defines) чтобы stdafx мог помочь.

2

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector