Это не очень хороший подход по разным причинам - в идеале вы должны изменить внешний цикл вашей программы, чтобы он мог обрабатывать все файлы в командной строке, тогда вы можете просто сделать все за один прогон:
$ shark -i
$ mycprog $SomeDirectory/*
Если вы не можете этого сделать, вам нужно будет настроить свою конфигурацию Shark для профилирования в масштабе всей системы и начать профилирование до цикла bash, а затем прекратить профилирование. Когда вы впоследствии просмотрите профиль в Shark, вы сможете отфильтровать интересующие вас процессы.
Сначала откройте Shark (приложение с графическим интерфейсом), настройте свою конфигурацию и включите дистанционное управление (Sampling
=> Programmatic
). Убедитесь, что вы выбрали Time Profile
и Everything
.
Затем из командной строки:
$ chudRemoteCtrl -s "mycprog"
$ sleep 1
$ for f in $SomeDirectory/*
$ do
$ mycprog $SomeDirectory/$f
$ done
$ chudRemoteCtrl -e