Подтвердить что ты не робот

Отслеживание планирования pthread

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

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

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

С наилучшими пожеланиями

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

4b9b3361

Ответ 1

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

Ответ 2

Возможно, что-то вроде Intel VTune?

Ответ 3

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

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