Для многих процессов я ожидаю, что время настенных часов значительно превысит общее время процессора. Немногие процессы связаны с процессором, поэтому они будут тратить много времени на ожидание. К счастью, время ожидания больше не оплачивается. Вещи, которые вызывают ожидания:
- Ввод / вывод любого типа (диск, сеть, межпроцессные каналы и т. Д.).
- Синхронизация ресурсов между процессами.
- Срезы времени, выделенные другим процессам.
- Обмен памяти (не часто встречается в наши дни).
- Прерывания почти любого другого вида.
Даже мощные статистические программы могут выполнять ввод / вывод, что приводит к тому, что загрузка ЦП будет меньше времени настенных часов.
Крайний пример - копирование большого файла из одного раздела на диске в другой раздел на том же диске. Это может занять много времени Wall с небольшим временем процессора. Если у вас есть возможность использовать ionice
, вы можете увеличить время на стене, если диск вообще занят другой работой.
Следующая команда, скорее всего, покажет значительно большее реальное (настенные часы) время, чем время пользователя и системы вместе взятых.
time bash -c "read ans"