Почему настенные часы намного выше, чем время процессора / пользователя / ядра

В моем приложении, написанном на 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.

В чем может быть причина такого высокого времени перерыва, даже если не было серьезных ошибок на странице?

-2

Решение

Потому что ваш код тратит много времени на дисковый ввод-вывод и «ожидание»:

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.

Все эти действия (за исключением того, что «процесс не раз переключался контекстом невольно») являются признаками того, что ваш процесс много ждет, пока жесткий диск что-то доставит или что-то предпримет.

Кроме того, тот факт, что ваш код проводит больше времени в режиме ядра, чем в режиме пользователя, является еще одним свидетельством того, что ваш код выполняет много операций дискового ввода-вывода (или других операций ввода-вывода).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]