ETTrace è un Open
CasaCasa > Blog > ETTrace è un Open

ETTrace è un Open

Apr 09, 2023

InfoQ Homepage Notizie ETTrace è un profiler open source per iOS che mira a semplificare l'ottimizzazione delle prestazioni

07 giugno 2023 2 minuti di lettura

di

Sergio De Simone

Recentemente reso open source da Emerge Tools, produttore di numerosi strumenti di analisi per app iOS, ETTrace mira a semplificare la profilazione delle prestazioni iOS fornendo visualizzazioni intuitive e operazioni semplici.

ETTrace deve affrontare la forte concorrenza del profilatore di piastrelle integrato Xcode, che è di fatto la soluzione standard per l'ottimizzazione delle prestazioni delle app iOS. Tuttavia, afferma Noah Martin, ingegnere di Emerge Tools, c'è molto da migliorare in Xcode Time Profiler:

In Emerge ho parlato con molti ingegneri che lavorano su app di grandi dimensioni e il feedback è tutto lo stesso: Time Profiler può essere instabile e lento. Anche ottenendo gli screenshot di questo articolo ho riscontrato diversi blocchi e ho dovuto forzare l'uscita. La simbolizzazione è spesso un problema, poiché vengono generate tracce che mostrano solo indirizzi ma non nomi di funzioni.

Al contrario, sostiene, ETTrace utilizza un grafico a fiamma per facilitare l'identificazione dei colli di bottiglia nelle prestazioni e fornisce uno strumento da riga di comando facile da usare che proietterà l'app in esecuzione localmente. Integrare ETTrace in un'app iOS è facile come collegare un framework Objective-C ed eseguire ettrace dalla riga di comando per avviare e interrompere la profilazione quando desiderato. ETTrace supporta anche la possibilità di avviare il tracciamento subito dopo l'avvio dell'app impostando la chiave Info.plist ETTraceRunAtStartup su YES.

Il framework è in grado di registrare lo stack dell'app a intervalli fissi in un file di traccia, che viene poi utilizzato per creare una visualizzazione. ETTrace campiona solo il thread principale, che è la parte più sensibile al tempo di un'app iOS poiché ha la responsabilità di eseguire il rendering dell'interfaccia utente e non dovrebbe mai bloccarsi. Le tracce possono quindi essere caricate su una pagina pubblica sul sito Web Emerge Tools per creare un grafico della fiamma. Puoi anche confrontare due tracce per confrontare due diverse esecuzioni della tua app e controllare, ad esempio, come una funzione è migliorata o regredita.

Un altro vantaggio di ETTrace, afferma Martin, è che può essere integrato in una pipeline CI utilizzando Emerge Tools Performance Analysis, che fornisce funzionalità di test delle prestazioni. Come caso di studio, cita il lavoro svolto da Doordash per ridurre del 60% il tempo di lancio dell'app iOS, identificando e rimuovendo i colli di bottiglia associati ai test di conformità del protocollo Swift.

Un grafico Flame è un modo per visualizzare dati gerarchici che semplifica l'identificazione dei percorsi di codice utilizzati più frequentemente. Ogni nodo, cioè la funzione, è rappresentato da un frame la cui larghezza rappresenta una misura relativa del tempo di CPU utilizzato da quella funzione.

ETTrace può essere scaricato da GitHub.

Scopri le tendenze e le pratiche emergenti da parte di esperti del settore. Migliora le tue abilità al QCon New York (13-15 giugno 2023)!

Scrivere per InfoQ ha aperto molte porte e aumentato le opportunità di carriera per me. Ho avuto la possibilità di interagire profondamente con esperti e leader di pensiero per saperne di più sugli argomenti trattati. E posso anche diffondere le mie conoscenze alla più ampia comunità tecnologica e capire come le tecnologie vengono utilizzate nel mondo reale.

Ho scoperto il programma per collaboratori di InfoQ all'inizio di quest'anno e da allora mi sono divertito! Oltre a fornirmi una piattaforma per condividere l'apprendimento con una comunità globale di sviluppatori di software, il sistema di revisione peer-to-peer di InfoQ ha migliorato significativamente la mia scrittura . Se stai cercando un posto dove condividere la tua esperienza nel software, inizia a contribuire a InfoQ.

Ho iniziato a scrivere notizie per la coda InfoQ .NET come un modo per tenermi aggiornato sulla tecnologia, ma ne ho ricavato molto di più. Ho incontrato persone competenti, ho ottenuto visibilità globale e ho migliorato le mie capacità di scrittura