Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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