Прийнятне використання процесора для 4-х ядерного ядра 3,4 ГГц i7


6

Створення програми для кіоску для Mac і тестування продуктивності та використання процесора. Монітор активності показує загалом від 90 до 150% використання процесора для процесів, що постійно виконуються.

Моя перша плутанина полягає в тому, як використання процесора може перевищувати 100%, але я розумію, що це пов'язано з кількістю ядер.

Так що моє питання, це 150% загального використання процесора прийнятно для кіоску на основі Mac з постійно працює 24-7 додатків? Або це занадто високо?

addendum & gt; додаток постійно обробляє відео, єдиною "взаємодією" є відео-канал, що надходить з веб-камери.


7
Чи виконує ваш додаток кіоск матеріали, які можуть виправдати 150% CPU?
CousinCocaine

Відповіді:


6

Zero is Ideal

В ідеалі, ваша заявка на кіоск слід використовувати 0% процесора, коли він не використовується активно . Навряд чи ви досягнете цього без значних зусиль, але навіть цільове використання від 5 до 10% є хорошим.

На 150% постійного використання процесора, програма, ймовірно, вважатиметься несправним для користувачів Apple App Store, а також для багатьох клієнтів.

Підказки: Вивантаження в потрібну структуру

Якщо ваше додаток анімовує або показуватиме рухомий вміст, наприклад рекламу або фільм, виконайте якомога більше AVFoundation / QuickTime. Це, як правило, розвантажує обробку на графічний процесор і дозволяє процесору в режимі очікування.

Для інших анімацій обов'язково використовуйте CoreGraphics і CoreAnimation. Вони значно покращать енергетичний вплив вашої програми.

Керівництво з енергоефективності для Mac Apps

Вивчення Посібник з енергоефективності Apple для Mac Apps . Вступ вказує на наміри Apple:

Ваше зобов'язання як розробника

Навіть невеликі неефективності в додатках збільшуються в системі, що значно впливає на термін служби батареї, продуктивність, швидкість і температуру. Як розробник програм, ви зобов'язані переконатися, що ваша програма працює максимально ефективно. Використовуйте рекомендовані API, щоб система могла прийняти розумні рішення про те, як найкраще керувати вашою програмою та ресурсами, які вона використовує. По можливості уникайте непотрібних оновлень для інтерфейсу користувача та вводу-виводу. Енергоємні операції повинні перебувати під контролем користувача. Якщо користувач ініціює великий iMovie рендеринг, пакетне завдання Automator, перетворення компресора або компіляцію Xcode, наприклад, користувач не повинен дивуватися, якщо активність споживає потужність. Прагніть зробити вашу програму абсолютно непрацюючою, коли вона не відповідає на вхід користувача.

Використовуйте інструменти розробника, щоб проаналізувати енергетичний вплив вашої програми та відмовитися від нього Переповнення стеку способів зменшення навантаження на процесор. Удачі!


2
Ваша заява "нульовий ідеал" нагадує мені старе побачення, яке, на мою думку, є чистим Йоги Берра "В теорії немає ніякої різниці між теорією і практикою. На практиці є". Ви робите гарні пункти для того, щоб бути хорошим громадянином у середовищі з декількома користувачами або кількома додатками, але використання кіоску є втіленням гри з нульовою сумою. Навіщо витрачати більше на скорочення процесора або купувати додаткове обладнання, якщо у вас є достатньо місця для деградації. i7 має 4 ядра, 8 ниток і один процес приймає 1,5 з 8 потоків, які доступні. Мені здається, що це не проблема.
bmike

1
150% процесора торкається мене, незважаючи на те, що це пристрій одноразового використання. Одне ядро ​​3.6Ghz i7 є потужним, і мені цікаво, що споживає всі ці цикли. Але ви маєте рацію, якщо бюджет дозволяє, створене тепло не є проблемою, і користувальницький досвід великий, то майже будь-яке використання процесора може бути проігноровано.
Graham Miln

1
Дійсно - це схоже на те, що хтось говорить: "Я не збираюся насолоджуватися цим фільмом, оскільки проектор використовує 1500 Вт, і зараз тільки одна людина дивиться на фільм". Все є компромісом в інженерії - так, зробіть ефективний код, коли зможете, але вкладаючи 10 тисяч доларів, щоб знову зробити те, що працює в анімації в HyperCard для будівлі, яка відкрита три вечори на тиждень, і весь день вихідні буде поганим коштів на неприбуткові. Це трохи цікаво, щоб побачити, як кожен бачить це питання через власний досвід - і я є частиною того, що "бачу" це мій шлях.
bmike

3
Просто попередження: ask away on Stack Overflow for ways to reduce CPU load Це було б не по темі без конкретного прикладу коду, як "Занадто широкий".
cybermonkey

1
"При 150% постійному використанні процесора, програма, ймовірно, вважатиметься несправним для користувачів Apple App Store, а також для багатьох клієнтів". - якщо це для кіоску, то чому програма буде в магазині додатків, і чому клієнти зможуть бачити використання ЦП?
immibis

1

Звичайно, 150% загального КПУ не тільки буде абсолютно неприйнятним, але й фізично неможливим.
Я знаю, що більшість спортсменів, здається, думають, що вони можуть дати щонайменше 110% кожен раз, коли їх інтерв'юють, але ніхто не вказав на них прості факти, я думаю ;-)

Монітор діяльності показує використання процесора окремих додатків на ядро [включаючи віртуальні ядра], так що 150% є насправді (для i7, з 4 ядрами + гіпертонування) 150/8 = 18,75% від загальної можливості машини.

Загальна кількість користувачів System + під окремими цифрами - це більш точне представлення загального використання машини & amp; швидке підняття фігур дає вам приблизне уявлення, що це насправді справжній стан речей.

enter image description here

Враховуючи це як приклад, видимі відсотки становлять близько 120, але показник System + User складає лише 5,3%
У мене є 24 віртуальних ядра [2 x 6-ядерні процесори + гіпертренинг], тому 120/24 = 5 [досить близько, щоб врахувати процеси нижче в списку]

На 18,75% від загальної потужності машини, я не бачу, щоб її варто було оптимізувати, якщо інший процес не потребує значної частини решти можливостей.


Це хороша установка!
CousinCocaine

0

Якщо у вас є проблеми, не передчасно оптимізуйте мої поради. Апаратне забезпечення буде працювати на 100% (або 800% від однієї нитки у вашому обладнанні) без жодного негативного ефекту, і якщо у вас немає ефектів блокування - ваші анімації та функції кіоску можуть навіть не погіршитися, коли процесор буде повністю зайнятий .

Якщо є низький висячі фрукти, щоб зменшити процесор, йти на це, але i7 має 4 фізичних ядра і обчислює завантаження процесора проти 8 віртуальних ядер. Ваша техніка ідеально іде на 800%, і ви зараз тільки на 150%? Схоже, що специфікації для апаратного забезпечення є більш ніж перебільшенням для ситуації киоску для одного використання. Якщо ви вибрали технологічний стек і задоволені вмістом кіоску з точки зору анімації, здатність виконувати завдання, яке ви "наймаєте", це робити - я б не хвилювався про деякі "найкращі практики" ззовні, навіть його Керівництво компанії Apple є ефективним кодером (які, до речі, відмінні).

У будь-якій системі ви можете планувати не перевищувати 80% використання, якщо ви не можете оцінювати, вимірювати, реагувати і виправляти звичаї. Це керівництво, і, звичайно, коли ви можете зробити краще, ви повинні.

Я припускаю, що ви дійсно маєте інструменти віддаленого доступу, щоб підштовхнути оновлення, і можете виміряти процесор з часом і реагувати, але інтерактивність кіоску здається низькою на "ми втрачаємо гроші", коли система відстає.

  • Скільки часу користувач взаємодіє з кіоском?
  • Чи відбуваються чи втрачаються гроші, і за якою швидкістю це оцінюється?
  • Що відбувається з системою, коли вона стає пов'язаною з процесором (через фонові процеси або зміни у програмі)?

Будь-яка "найкраща практика" дійсно є відправною точкою для оцінки ситуації. Немає жодних причин не залишати комп'ютер, що працює на 100%, якщо основний потік не заблокований, а система в цілому виснажується.


3
150% постійно є абсолютним божевіллям для будь-якої програми, яка не робить нічого, особливо кіоск (що стоїть перед споживачем, я припускаю). Існує нетривіальна різниця в енергоспоживанні між непрацюючим і 150% використанням - за пару машин, які працюють 24/7, це може дуже швидко перетворитися на пристойну суму грошей.
Undo

1
@Undo Ви припускаючи що додаток нічого не робить або робить вас знати додаток нічого не робить? Операційна система заявляє, що використання процесора становить від 90 до 150%. Я не готовий припускати недбале проектування / вибір програмного забезпечення з однієї точки даних. Крім того, ваші скарги на використання енергії здаються просторішими, не знаючи великої картини. Чи ви захищаєте всі комп'ютери, які використовують енергію? Знову ж таки, ваші припущення, що код безоплатно використовує процесор і обтяжує витрати на електроенергію, виникають як помилковість відносної відсутності .
bmike

1
Звичайно, ні - я не виступаю за це як еколога або щось подібне, але факт полягає в тому, що якщо ви керуєте цими кіосками, і використовуєте стільки процесора, без вагомих причин ("кіоск" на мій погляд це щось споживач, що виконує мінімальну роботу) може стати дорогим, якщо ви не отримаєте ніякої цінності з нього. Я не кажу, що нам треба кинути все і зосередитися на енергетичних витратах, але це фактор. Я хотів би побачити роз'яснення з ОП про те, що він насправді робить, але якщо це просто відображення інформації ... тут щось не так.
Undo

1
@Undo Так чому ви коментуєте мою відповідь, якщо ОП потребує роз'яснень? 150/800 - це робочий цикл 18,5% - у вас є непарний поріг "insanity", щоб охарактеризувати таку легко завантажену систему.
bmike

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