Perché le versioni successive di iOS richiedono più tempo per eseguire la stessa attività sullo stesso hardware?

1

L'aggiornamento della versione iOS su un vecchio iPhone tende a per rendere più lunghe le operazioni di base come l'avvio, l'esecuzione di chiamate e il controllo delle impostazioni . Il passaggio da eg iOS 7 a 8 su un iPhone 4S ha un effetto molto percepibile .

Riesco a capire perché le nuove funzionalità introdotte sono più impegnative, quindi richiedono più tempo per la CPU, ma questo non spiega perché un iPhone con iOS 7 impiegherebbe 4 secondi per visualizzare messaggi di testo, ma lo stesso iPhone impiega 9 secondi per visualizzare esattamente gli stessi messaggi quando è in esecuzione iOS 9.

Che cosa causa questo? Se dovessi eseguire un profiler su un'app che impiega n secondi su un iPhone con iOS7 e n + m secondi su un telefono identico che esegue iOS9, quindi alcune barre in quel il profilo deve essere più lungo di m secondi. Quali sono?

    
posta Crashworks 23.05.2016 - 20:32
fonte

3 risposte

1

Solo Apple conosce la risposta effettiva a questa domanda.

Ma una possibile risposta è che il codice sorgente e le ottimizzazioni del compilatore per particolari implementazioni della CPU e gerarchie di memoria possono effettivamente fare una differenza significativa nelle prestazioni visibili dell'utente (e nell'uso della batteria, ecc.)

Se il codice del sistema operativo più recente è stato profilato e ottimizzato su dispositivi più recenti con CPU con cache più grandi, meno rischi di pipeline e una migliore previsione dei branch (ecc.), quel codice, se eseguito su dispositivi più vecchi, vedrebbe più dati e il thrash della cache delle istruzioni, più stalli della pipeline e più svuotamenti di pipeline per le previsioni errate delle filiali, che possono rallentare le prestazioni visibili.

Una tipica (de) ottimizzazione è l'ampliamento di varie strutture dati per aggiungere funzionalità e meglio generalizzarle e renderle a prova di futuro (campi da 32 a 64 bit, ecc.). Ma se questo fa la differenza tra la cache residency e il caching della cache su diversi sistemi di processori, la differenza di prestazioni locale può essere superiore a un ordine di grandezza.

    
risposta data 11.06.2016 - 19:43
fonte
0

Perché l'ottimizzazione per i dispositivi che stanno andando fuori moda non è una priorità aziendale per Apple.

Le cose spesso non diventano più veloci / migliori da sole, è come la seconda legge della termodinamica, la tendenza naturale è verso il disordine. Vedi anche principio open-closed (parte di SOLID), i sistemi sono spesso aperti per estensione ma chiusi per la modifica. Solo le modifiche possono davvero ottimizzare i componenti esistenti.

Quindi ci deve essere un'assegnazione consapevole delle risorse per rendere le cose più semplici, più eleganti, più veloci, più manutenibili, ecc. E il desiderio di business per quell'allocazione delle risorse non è proprio lì.

    
risposta data 11.07.2016 - 20:19
fonte
-4

Si verifica a causa dei nuovi aggiornamenti fatti dagli sviluppatori alle loro app in modo che possano far fronte alle migliori funzionalità del nuovo hardware, il che si traduce anche in un ritardo per i dispositivi più vecchi. Si verifica anche a causa della GUI miglioramenti apportati da Apple a iOS che comportano tempi operativi più lunghi. Ho anche un mini iPad. Come ha un processore a 32 bit, quindi ha prestazioni decenti, ma confrontandolo con il nuovo iPad Pro che ha un processore a 64 bit le nuove funzionalità progettate per il processore a 64 bit portano a causa del dimensioni della stringa e questo si traduce in prestazioni migliori che iPad mini non può obsare

    
risposta data 24.05.2016 - 09:28
fonte

Leggi altre domande sui tag