В чем разница между временем настенных часов, временем пользователя и временем процессора

14

Мы выполняем вычислительные работы с GridEngine. Каждое задание возвращается 3 разных раза:

  • Часы настенные
  • Время пользователя
  • Процессорное время

Каковы различия между этими тремя? Какой из этих трех наиболее подходит для сравнения производительности двух приложений / скриптов

Питер Смит
источник

Ответы:

18

Время настенных часов - это фактическое время, затраченное на выполнение работы. Это эквивалентно времени вашей работы с секундомером, и на измеренное время выполнения вашей задачи может повлиять все, что система делает в данный момент.

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

Время ЦП измеряет общее количество времени, затраченное ЦП на выполнение вашего кода или всего, что запрашивает ваш код. Это включает время ядра.

Измерение «Пользовательское время», вероятно, является наиболее подходящим для измерения производительности различных заданий, поскольку на него меньше всего влияют другие вещи, происходящие в системе.

Грег Хьюгилл
источник
3

Из Википедии:

Поначалу термин «время процессора пользователя» может вводить в заблуждение. Чтобы уточнить общее время (реальное время ЦП), это комбинация времени, которое ЦП тратит на выполнение какого-либо действия для программы, и количества времени, которое ЦП тратит на выполнение системных вызовов для ядра от имени программы. Когда программа проходит по массиву, она накапливает пользовательское процессорное время. И наоборот, когда программа выполняет системный вызов, такой как exec или fork, она накапливает системное процессорное время

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

максвелл
источник