Всем привет.
Я тут вляпался в я.практикум. Думал, будет легко (я ж программист), оказалось не очень.
Короче.
Задача.
Есть линукс. В линуксе нужно отпрофилировать приложение. Беру приложение (ок, его замену), запускаю, беру perf, запускаю с указанием pid, тыкаю в приложение. После завершения приложения perf чудесным образом завершается, и на диске образуется perf.data. Нормальный файлик, я его потом скармливаю в flamegraph.
Казалось бы, что могло пойти не так?
Беру тот же самый скрипт, который запускает моё приложение и perf, коммичу на гитхаб скрипт (perf на линуксе уже есть). На гитхабе запускается линукс, который запускает мой скрипт, который делает всё то же самое - запускает приложение и perf, потом завершает приложение и ждёт завершения perf и образования файлика perf.data. Но есть один нюанс.... На гитхабе это не работает :(((
В общем, вопрос: как perf понимает, что надо бы уже завершить свою работу, в случае запуска с ключиками:
perf record --call-graph dwarf -p <здесь PID моего приложения>
?
И почему, в принципе, perf может подвисать?