Леннарт Поттеринг (Lennart Poettering), разработчик звукового сервера PulseAudio, представил в своем блоге утилиту mutrace, ориентированную на отслеживание проблем производительности, вызванных конфликтами мьютексов и взаимными блокировками в многопоточных приложениях.
mutrace выводит следующую информацию:
- список мьютексов;
- информацию о том, как часто мьютекс был заблокирован в течение всего времени выполнения;
- информацию о том, как часто изменилась владеющая нить (owning thread) мьютекса;
- как часто были блокировки и сколько приходилось ждать;
- информация о том, в течении какого времени была блокировка в ходе всего выполнения;
- среднее время блокировки;
- максимальное время блокировки;
- информация о том, что это за мьютекс (нормальный, рекурсивный и т.д.)
|