У меня есть приложение (простой код C), работающее поверх ядра Linux. Я измеряю время между двумя точками кода. Я хотел бы знать, вытеснил ли какой-либо другой процесс или сам планировщик мое приложение между этими двумя точками. Есть ли способ найти это.
Проверьте, произошло ли вытеснение в Linux между двумя точками кода
Ответы (1)
Один из способов определить, было ли какое-либо переключение контекста между двумя точками в коде, — это использовать
getrusage(int who, struct rusage *usage)
позвоните и сравните значения ru_nvcsw и ru_nivcsw
struct rusage {
...
long ru_nvcsw; /* voluntary context switches */
long ru_nivcsw; /* involuntary context switches */
};
person
Nithin
schedule
04.10.2015
ps -A
, чтобы увидеть все остальные процессы, конкурирующие за ресурсы. Запустите приложение с префиксом командыtime
. Попробуйте изменить приоритет с помощьюnice
. Ваш вопрос очень похож на вопрос, мокрая ли вода. - person sawdust   schedule 02.10.2015