Многопоточное приложение для анализа и профилирования

У нас есть многопоточное приложение, которое имеет тяжелую обработку пакетов на нескольких этапах конвейера. Приложение находится на C под Linux.

Все приложение работает нормально и не имеет утечек памяти или проблем с поточной безопасностью. Однако, чтобы проанализировать приложение, как мы можем профилировать и анализировать потоки?

В частности, вот что нас интересует:

  1. использование ресурсов каждым потоком;
  2. частота и время, с которым потоки конкурировали за получение блокировок
  3. Количество накладных расходов из-за синхронизации
  4. любые узкие места в системе
  5. какова наилучшая пропускная способность системы, которую мы можем получить

Какие лучшие методы и инструменты доступны для этого?

7
задан Dipan Mehta 29 February 2012 в 15:33
поделиться