Измерение времени, затрачиваемого на каждую операцию создания в рекурсивных папках

#makefile #measure #gnu-make

#makefile #измерение #gnu-make

Вопрос:

Я очень новичок в makefile. Здесь у меня проблема с поиском времени для компиляции (c-кода) каждого модуля.

Операционная система: Linux make: x86_64-redhat-linux-gnu

Я использую «make» с -j опцией.поддерживается только один Makefile с инструкцией « /usr/bin/make «. И в recursivley есть несколько компонентов.Для каждого компонента один Config.mk поддерживается в рабочем состоянии. в некоторых модулях нет « .mk » также я пытался отобразить время в каждом «.mk», используя «{info {дата оболочки}), но это не дало достаточных результатов, поскольку все они использовались на очень ранней стадии компиляции..

Может ли кто-нибудь помочь найти время для каждой операции make

Приветствия Murali

Комментарии:

1. Пожалуйста, покажите нам ваш основной makefile. И сообщите нам, какую ОС вы используете. И, возможно, сообщите нам свой родной язык, поскольку он не похож на английский.

2. Операционная система — Linux.

3. Я не совсем понимаю, что вы хотите измерить. Каждая отдельная цель make или весь процесс make для поиска правильного numver -j ? Насколько я понял, я думаю time , это вам поможет. Замена make calls на time make должна дать вам несколько первых подсказок.

4. извините за неясный запрос. Мера — это только «сколько времени уходит на каждую компиляцию или генерацию объектного файла из кода c». Как уже упоминалось, поддерживается и вызывается только один Makefile через » make -j «, который внутренне перебирает множество каталогов (компонентов), имеющих «config.mk » файлы для компиляции каждого модуля. Мне нужно найти «время компиляции для каждого компонента». «time make» мне не помогло. Есть ли какая-либо опция с «debug»?

Ответ №1:

Вы можете .ФАЛЬШИВЫЕ цели, которые выполняются как первые и последние цели, и распечатать дату

все:
эхо "Компонент foo: сборка начата"
 Дата
 $ (MAKE) build
echo "Компонент foo: сборка завершена"
 Дата

сборка: ....
....