Когда я создаю проект CMake, сканирование зависимостей происходит медленно. Исследуя с Htop для моего большого проекта указал мне на командуСканирование зависимостей в проекте CMake происходит медленно
/usr/bin/cmake -E cmake_depends Makefiles [...]
, который работает на одном потоке. Может ли это ускориться? Может быть, с параллелизмом/многопоточным?
«Решение»
Я использую ниндзя теперь, что гораздо быстрее обнаруживать DEPS и сбор необходимых данных для compillation.
Благодарим за ответы!
Не могли бы вы предоставить дополнительные сведения? Например. какая ОС, какая версия CMake и т. д. Как долго это занимает в данный момент и какова ваша цель? Я бы посмотрел, например. перекомпилировать CMake и посмотреть, где вы находитесь (см. также [здесь] (http://stackoverflow.com/questions/37327526)). Потому что просто сделать что-то многопоточное, которое не было написано для многопоточности, непростая задача для компилятора в основном в зависимости от того, как организованы данные (см. Автоинтерактивность, например [здесь] (https://msdn.microsoft.com /en-us/library/hh872235.aspx)). – Florian
Я добавил информацию о версии ОС и CMake к вопросу. Для поиска зависимостей требуется около 15 секунд.Сам процесс компиляции и связывания уже очень быстрый (и может быть многопоточным). – Migsi
Я изо всех сил стараюсь понять суть: конфигурация CMake в теории - редкое событие. Кроме того, вы можете сохранить в переменной кэша результат сканирования зависимостей и избежать сканирования при повторном повторе CMake. Еще один момент против многопоточности: при сканировании зависимостей у него есть горло бутылки в доступе на диск, что в общем случае невозможно распараллелить. Используйте твердотельный диск, если вы этого еще не сделали. – Antonio