Профилирование GPRBuild
У меня большой проект на основе георадара, который может занять более 30 минут для компиляции.
Проанализировав процесс сборки, я заметил много очевидных недостатков (многократные обращения к gprbuild, а не к агрегатам, чрезмерное использование альтернативных файлов вместо конфигураций и т. Д.). Мне интересно, есть ли какие-то средства для "профилирования" процесса сборки, чтобы увидеть, что занимает так много времени.
В частности, перекомпиляция занимает около 5 минут, когда изменяется даже один файл и в нем есть ошибка. В теории должно быть довольно быстро понять, что этот файл должен быть перекомпилирован (это единственный, который делает) и начать процесс компиляции, быстро обнаружив ошибку.
Исходя из подробного вывода, похоже, что он занимает довольно много времени, просто анализируя огромную сеть файлов gpr, используемых для определения сборки, но я хотел бы знать, где она проводит большую часть своего времени.
Таким образом, мой вопрос: возможно ли профилировать сборку, выполненную gprbuild? Если так, то как?
1 ответ
От низкой до высокой сложности:
- Просить
gprbuild
сообщить более подробную информацию о том, что он делает с флагом-vh
, - Бежать
gprbuild
черезstrace
, - перестраивать
gprbuild
с необходимыми флагами, чтобы профилировать его с помощьюgprof
(но учтите, чтоgprof
не всегда говорит правду).