В моем приложении, написанном на C ++, я получаю информацию ниже времени.
0.46u CPU user time
1.27s CPU kernel time
41.83s Real wall clock
4% CPU% usage.
0 Major page faults
207848 No. of file system outputs.
100269 minor page faults.
82: No. of times the process was context switched involuntarily.
1297 No. of times that the program was context-switched.
В чем может быть причина такого высокого времени перерыва, даже если не было серьезных ошибок на странице?
Потому что ваш код тратит много времени на дисковый ввод-вывод и «ожидание»:
207848 No. of file system outputs.
100269 minor page faults.
82: No. of times the process was context switched involuntarily.
1297 No. of times that the program was context-switched.
Все эти действия (за исключением того, что «процесс не раз переключался контекстом невольно») являются признаками того, что ваш процесс много ждет, пока жесткий диск что-то доставит или что-то предпримет.
Кроме того, тот факт, что ваш код проводит больше времени в режиме ядра, чем в режиме пользователя, является еще одним свидетельством того, что ваш код выполняет много операций дискового ввода-вывода (или других операций ввода-вывода).
Других решений пока нет …