У меня есть переписанная часть кода в C. При тестировании ее с протоколированием использования ресурсов с помощью getrusage (2) API API.
Перед изменением кода:
user time (ms): 21503
system time (ms): 372
involuntary context switches: 20
После изменения:
user time (ms): 25589
system time (ms): 80732
involuntary context switches: 821
В коде, который я переписал, я вижу много involuntary context switches
.
Мой вопрос не в том, как уменьшить контекстные переключатели. Но..
- Что происходит, когда "принудительные переключатели контекста" больше?
- Каким образом это повлияет на систему?
P.S: На диске нет активности, поскольку ничего не записывается. Он просто пингует сервер несколько раз.
Update:
Добавлена система и время пользователя.
Программа многопоточная. В обоих случаях генерируется одинаковое количество потоков (поток 3k). Переписывается только базовый api в C.