Проверьте, не произошло ли вытеснение в Linux между двумя точками кода

У меня есть приложение (простой код C), работающее поверх ядра Linux. Я измеряю время между двумя точками кода. Я хотел бы знать, вытеснил ли какой-либо другой процесс или сам планировщик мое приложение между этими двумя точками. Есть ли способ найти это.

1 ответ

Один из способов определить, было ли какое-либо переключение контекста между двумя точками в коде, - это использовать

getrusage(int who, структура rusage * использование)

вызовите и сравните значения ru_nvcsw & ru_nivcsw

   struct rusage {
       ...
       long   ru_nvcsw;         /* voluntary context switches */
       long   ru_nivcsw;        /* involuntary context switches */
   };
Другие вопросы по тегам