Що таке "системний час" при використанні "часу" в командному рядку


10

Я використовую timeчас Perlсценарій на стандартному терміналі в Ubuntu 14.04.

Я прочитав, що real timeце секундомір; час, який я, як користувач, витрачаю на перегляд програми, що працює з моменту запуску програми, поки вона не припиняється. Але я не розумію, що таке userчи sysчас. Сторінка людини на timeнайменшій мірі розпливчаста.

Хоча дещо зрозуміло, що realчас розділений між собою, userі sysне ясно, що вони собою представляють.

У моєму сценарії я аналізую [1] C ++ та Perl один проти одного, щоб побачити різницю, і я хотів би знати, які дані я отримую насправді. Приклад виводу:

real    0m24.198s
user    0m23.120s
sys     0m1.030s

Невже хтось може, будь ласка, розробити, про що повідомляє користувачеві формат часу за замовчуванням? Я новачок в Linux, тому, будь ласка, не припускайте занадто багато.

[1] Цікаво, що в той час як C ++ є набагато швидшим, ніж Perl, у моєму орієнтирі щодо realчасу, sysчаси не сильно відрізняються, оскільки C ++ фактично використовує більше sysчасу, ніж Perl. Ось чому я хочу знати, що вони означають


Відповіді:


15

З Вікіпедії :

  • Час користувача проти системного часу

Термін "час користувальницького процесора" спочатку може бути трохи оманливим. Щоб було зрозуміло, загальний час процесора - це комбінація часу, який процесор (и) витратив на виконання певної дії для програми, та кількість часу, який CPU (и) витратили на виконання системних викликів ядра від імені програми. Коли програма проходить цикл через масив, вона акумулює час процесора користувача. І навпаки, коли програма виконує системний виклик, такий як exec або fork, вона накопичує системний час процесора.

  • Реальний час та час процесора

Термін "реальний час" у цьому контексті відноситься до минулого часу "настінного годинника", наприклад, використання секундоміра. Загальний час процесора (час користувача + час синхронізації) може бути більшим або меншим за це значення. Оскільки програма може витратити деякий час в очікуванні і зовсім не виконувати (в режимі користувача або в режимі системи), реальний час може бути більшим, ніж загальний час процесора. Оскільки програма може роздрібнювати дітей, час CPU (як користувач, так і системи) додані до значень, повідомлених командою time, загальний час процесора може бути більшим, ніж у реальному часі.


1
Я не розумію, як мені вдалося знайти цю статтю у Вікіпедії. Дякую.
Альрекр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.