Utilizzo della CPU accettabile per 4 core 3,4 gHz i7

6

Creazione di un'applicazione kiosk per il Mac e sto testando le prestazioni e l'utilizzo della CPU. Il monitor delle attività mostra un utilizzo totale della CPU compreso tra il 90% e il 150% per i processi sempre attivi, kiosk.

La mia prima confusione è come l'utilizzo della CPU può essere superiore al 100%, ma capisco che è correlato al numero di core.

Quindi la mia domanda è: il 150% dell'utilizzo totale della CPU è accettabile per un mac basato su kiosk con applicazioni 24-7 costantemente in esecuzione? O è troppo alto?

addendum > l'applicazione sta elaborando video costantemente, l'unica 'interazione' è il feed video proveniente da una webcam.

    
posta Bachalo 11.10.2015 - 18:53
fonte

3 risposte

6

Zero è ideale

Idealmente, l'applicazione kiosk dovrebbe utilizzare la CPU 0% quando non viene utilizzata attivamente . È improbabile che tu raggiunga questo obiettivo senza sforzi considerevoli, ma anche un obiettivo di utilizzo del 5 - 10% è buono.

Con un utilizzo costante della CPU del 150%, l'applicazione verrebbe probabilmente considerata difettosa dai revisori Mac App Store di Apple e da molti clienti.

Suggerimenti: Offload to the Right Framework

Se la tua applicazione chiosco sta animando o mostra contenuti in movimento come pubblicità o film, fai il più possibile con AVFoundation / QuickTime. In genere, l'elaborazione viene trasferita alla GPU e consente alla CPU di rimanere inattiva.

Per altre animazioni, assicurati di adottare CoreGraphics e CoreAnimation. Miglioreranno sensibilmente l'impatto energetico della tua applicazione.

Guida sull'efficienza energetica per le app Mac

Studia Guida sull'efficienza energetica di Apple per le app Mac . L'introduzione illustra le intenzioni di Apple:

Your Obligation as a Developer

Even small inefficiencies in apps add up across the system, significantly affecting battery life, performance, responsiveness, and temperature. As an app developer, you have an obligation to make sure your app runs as efficiently as possible. Use recommended APIs so the system can make smart decisions about how best to manage your app and the resources it uses. Whenever possible, avoid unnecessary updates to the user interface and I/O. Power-intensive operations should be under the user’s control. If a user initiates a large iMovie render, Automator batch job, Compressor conversion, or Xcode compile, for example, the user should not be surprised if the activity consumes power. Strive to make your app absolutely idle when it is not responding to user input.

Utilizza gli strumenti di sviluppo per valutare l'impatto energetico della tua applicazione e chiedere via su Stack Overflow per modi per ridurre il carico della CPU. Buona fortuna!

    
risposta data 11.10.2015 - 20:09
fonte
1

Il 150% della CPU totale, ovviamente, non solo sarebbe totalmente inaccettabile, ma fisicamente impossibile.
So che la maggior parte degli sportivi sembra pensare di poter dare almeno il 110% ogni volta che viene intervistato, ma nessuno ha sottolineato loro i fatti semplici, immagino; -)

Activity Monitor mostra l'utilizzo della CPU delle singole applicazioni per core [inclusi i virtual core], quindi il 150% è effettivamente (per un i7, con 4 core + hyperthreading) 150 / 8 = 18,75% della capacità totale della macchina.

Il totale di System + User al di sotto delle singole figure è una rappresentazione più accurata dell'uso e dell'ampiezza generale della macchina. un rapido tot-up delle figure ti dà una vaga idea che questo sia in realtà il vero stato delle cose.

Prendendo questo come esempio, le percentuali visibili ammontano a circa 120, ma la cifra di System + User è solo del 5,3%
Ho 24 core virtuali [2 CPU 6-core + hyperthreading] quindi 120/24 = 5 [abbastanza vicino per tenere conto dei processi più in basso nella lista]

Al 18,75% della capacità totale della macchina, non ritengo che valga la pena di ottimizzare, a meno che un altro processo non richieda una porzione significativa della capacità rimanente.

    
risposta data 11.10.2015 - 19:13
fonte
0

A meno che tu non abbia un problema, non ottimizzarlo prematuramente sarebbe il mio consiglio. L'hardware funzionerà al 100% dell'utilizzo (o all'800% di un singolo thread nel caso dell'hardware) senza effetti negativi e a meno che non si abbiano effetti di blocco: le funzioni di animazione e chiosco potrebbero non peggiorare nemmeno quando la CPU è completamente occupata 24 ore su 24 .

Se la frutta è bassa per ridurre la CPU, provaci, ma l'i7 ha 4 core fisici e calcola il carico della CPU su 8 core virtuali. Il tuo hardware raggiunge l'800% in modo ideale e al momento sei solo al 150%? Sembra che le specifiche per l'hardware siano più che esagerate per una situazione di chiosco monouso. Se hai scelto uno stack tecnologico e sei soddisfatto del contenuto del chiosco in termini di animazione, capacità di eseguire il compito che stai "assumendo" per farlo, non mi preoccuperei di alcune "best practice" imposte dall'esterno, anche se è le linee guida di Apple per essere un programmatore efficiente (che sono ECCELLENTI modo).

Su qualsiasi sistema, è possibile che si preveda di non superare l'80% di utilizzo se non è possibile eseguire il benchmark, misurare, reagire e correggere gli utilizzi burst. Questa è una linea guida e, naturalmente, quando puoi fare meglio, dovresti.

Immagino che tu abbia effettivamente strumenti di accesso remoto per spingere gli aggiornamenti e possa misurare la CPU nel tempo e reagire, ma l'interattività del chiosco sembra bassa sul "noi perdiamo denaro" quando il sistema è in ritardo.

  • Quanto tempo un utente interagisce con il chiosco?
  • I soldi vengono fatti o persi e a che velocità viene stimata?
  • Che cosa succede al sistema quando diventa legato alla CPU (a causa di processi in background o modifiche nell'app)?

Qualsiasi "buona pratica" è davvero un punto di partenza per valutare le cose. Non c'è motivo di non lasciare un computer con un utilizzo del 100% se il thread principale non è bloccato e il sistema nel suo complesso si degrada con grazia.

    
risposta data 11.10.2015 - 20:34
fonte

Leggi altre domande sui tag