Проверьте, не произошло ли вытеснение в 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 */
};