Отслеживание планирования потоков - PullRequest
12 голосов
/ 29 января 2010

Что я хочу сделать, так это создать некий график, детализирующий выполнение (двух) потоков в Linux.Мне не нужно видеть, что делают потоки, только когда они запланированы и на какой срок, в основном, временная шкала.

Я провел последние несколько часов, ища в Интернете способ отследитьсоставление расписанийК сожалению, два проекта, которые я обнаружил, требуют либо перекомпиляции ядра ( LTTng ), либо исправления glibc (NPTL Trace Tool) , оба из которых я не могу сделать (большая, централизованно управляемая система, накоторый у меня нет прав sudo).

Есть ли другой способ сделать что-то подобное или мне придется прибегнуть к поиску ноутбука, на котором я могу патчить / перекомпилировать все, что захочу?

С уважением

PS: Я бы связался с обоими проектами, но сайт не позволяет мне (репутация <10).Первый результат поиска в Google по именам проектов - правильный. </p>

Ответы [ 3 ]

3 голосов
/ 29 января 2010

Привилегии суперпользователя не нужны для сборки инструментированного glibc / libpthread.so. Программа ptt_trace, входящая в состав NPTL Trace Tool , запустит вашу программу с использованием инструментированной библиотеки.

1 голос
/ 29 августа 2010

Существует также инструмент под названием pthreadw (on sourceforge)

Это библиотека-обертка, которая перехватывает вызовы обычных функций библиотеки pthread и сообщает статистику, как в типичное время, проведенноеигра с блокировками, условными переменными и т. д. В настоящее время экспорт экспортных трасс невозможен, только сводные текстовые отчеты.

1 голос
/ 29 января 2010

Может быть, что-то вроде Intel VTune ?

...