Чому час обробки процесора має значення в порівнянні з реальним настінним годинником?


1

Я виконую команду, time 7zr a -mx=9 sample.7z sample.logщоб визначити, скільки часу потрібно для стиснення файлу розміром більше 1 Гб. Отримані результати такі.

real    10m40.156s
user    17m38.862s
sys     0m5.944s

У мене є основне розуміння різниці, але не розумію, як це відіграє роль у потрібний час для стиснення файлу. Наприклад, чи слід дивитись на + realабо ?usersys


Як ми могли сказати вам, на що слід дивитися? Ми не знаємо, що це ти хочеш знати.
Девід Шварц

@David Schwartz - Люблю знати, що є загальним показником, який використовується особливо при стисканні великих файлів. Швидкість - це суть, але враховуючи, що процесор впливає на реальний час, я не знаю, який результат буде точним.
АрахісМонкі

Відповіді:


4

Якщо для вас важливий час настінного годинника, realце показник, на який слід звернути увагу.

userі чи sysє там, щоб показати, як довго процесор був фактично зайнятий в користувальницькій і в ядрі. У вашому прикладі, user+sysце більше, ніж realтому, що 7zrкоманда є багатопотоковою і у вас є більше одного core / cpu.


Дякую, проте, я все ще плутаю те, що наводимо точну цифру. Наприклад, час, необхідний для стиснення, має вирішальне значення, однак якщо процесор зайнятий обробкою інших запитів, це впливає на час настінного годинника. Моє припущення - так, але це означає, що user+sysце точне подання часу на відміну від real? Також вражений тим, як вам вдалося сказати, що там більше одного ядра чи процесора. Як це сказати? Крім того, як дізнатися, чи є команда багатопотоковою через командний рядок?
PeanutsMonkey

2
Всі цифри точні. Вони не протистоять один одному. Вони просто представляють різні речі. Я зміг сказати, що було більше ніж один центральний процесор, тому що це більш логічне пояснення. У одноядерних системах час користувача + системи завжди менший, ніж у реальному часі. Ви можете відобразити всі багатопотокові процеси з цією командоюps -eo pid,nlwp,comm | awk '$2 > 1'
jlliagre

То в яких сценаріях я б використовував realі user + sys? Якщо є декілька процесорів або ядер, чому це user+sysбуде більше real?
PeanutsMonkey

Час, витрачений кожним ядром / процесором, додає, тобто за 1 годину часу, чотирьохядерний процесор може виробляти до 4 годин роботи. З іншого боку, інші процеси можуть конкурувати з вашими за процесор, тому реальний час для виконання завдання може бути більшим.
jlliagre

Вибачте за те, що тут є n00b, але я не зовсім дотримуюся того, що ви маєте на увазіThe time spent by each core/cpu do add, i.e. in 1 hour of time, a quad core CPU can produce up to 4 hours of work
PeanutsMonkey,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.