0Pricing
Swift Academy · Lezione

Fondamenti di Instruments: Time Profiler

Registrare l’utilizzo della CPU, leggere gli alberi delle chiamate e trovare gli hot spot nel codice.

Fondamenti di Instruments: Time Profiler è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Perché Instruments?

Xcode Instruments è una suite per l'analisi delle prestazioni. Time Profiler mostra dove viene impiegato il tempo della CPU, così può individuare i punti critici.

// Launch: Xcode → Product → Profile (Cmd+I)
// Choose "Time Profiler" template
// Run your app and exercise the slow path

Registrazione di una traccia

Faccia clic sul pulsante di registrazione in Instruments, utilizzi la funzionalità che desidera profilare, quindi interrompa la registrazione.

// 1. Connect device or use simulator
// 2. Launch with Profile (Cmd+I)
// 3. Select Time Profiler
// 4. Record for 5-30 seconds
// 5. Stop and analyze

Vista dell'albero delle chiamate

L'albero delle chiamate mostra le funzioni in base al tempo di CPU consumato. I percorsi di chiamata più pesanti compaiono nella parte superiore della gerarchia.

// Call Tree columns:
// Self %: time spent in this function exclusively
// Symbol Name: function or method name
// Expand to see callers/callees

Traccia dello stack più pesante

Il pannello della traccia dello stack più pesante mostra l'unico percorso di chiamata con il maggior numero di campionamenti, spesso il punto migliore da cui iniziare l'ottimizzazione.

// In Time Profiler:
// View → Heaviest Stack Trace
// Pinpoints the exact line consuming the most CPU

Filtraggio dei campioni

Attivi "Hide System Libraries" e "Invert Call Tree" per concentrarsi sul proprio codice invece che sui framework Apple.

// Call Tree options (bottom of Instruments):
// ☑ Invert Call Tree    – shows leaf functions first
// ☑ Hide System Libraries – filters out OS internals

Navigazione al codice sorgente

Faccia doppio clic su un simbolo nell'albero delle chiamate per passare direttamente alla riga interessata in Xcode.

// Double-click → opens file in Xcode at the hot line
// Red/orange annotation shows time spent per line

Time Profiler e SwiftUI

Nelle app SwiftUI, cerchi chiamate impreviste a body: ridisegni eccessivi vengono visualizzati come voci View.body ripetute nell'albero delle chiamate.

// Common SwiftUI hot spots:
// - body called 100+ times per second
// - Equatable not implemented, causing unnecessary diffs
// - Heavy computation in body instead of a model

Ispezione del thread principale e dei thread in background

La corsia dei thread nella parte superiore mostra l'attività di ogni thread. Picchi della CPU sui thread in background possono indicare un carico di lavoro eccessivo al di fuori del thread principale.

// Thread lanes: Main Thread, Thread 2, Thread 3...
// Select a thread to see its call tree in isolation

Time Profiler per l'avvio

Misuri il tempo di avvio dell'app profilando l'avvio e osservando i primi secondi della traccia.

// Instruments → File → Launch Profile
// Measures time from process start to first frame render

Impostazione di una baseline

Registri una traccia di baseline prima di ottimizzare. Dopo le modifiche, esegua nuovamente la profilazione e confronti i risultati per confermare il miglioramento.

// Baseline: 45ms for imageLoad()
// After optimization: 8ms for imageLoad()
// Confirm: 5.6x speedup verified in Instruments

Suggerimenti per una profilazione accurata

Esegua la profilazione su un dispositivo fisico con una build Release. Simulatori e build Debug alterano le misurazioni delle prestazioni.

// Always:
// 1. Use physical device
// 2. Build with Release configuration (Product → Scheme → Edit → Build → Release)
// 3. Repeat measurement 3+ times for consistency

Verifica rapida

Quale opzione dell'albero delle chiamate di Instruments mostra in cima all'elenco le funzioni foglia, ovvero quelle che consumano più tempo?

Riepilogo della lezione

Esegua la profilazione con Cmd+I → Time Profiler. Utilizzi Invert Call Tree e Hide System Libraries per visualizzare prima il proprio codice. Faccia doppio clic sui simboli per passare al codice sorgente. Esegua la profilazione sul dispositivo in modalità Release. Stabilire baseline prima e dopo le ottimizzazioni per confermare il miglioramento.

Domande Frequenti

La lezione «Fondamenti di Instruments: Time Profiler» è gratuita?

Sì — il testo completo di «Fondamenti di Instruments: Time Profiler» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Fondamenti di Instruments: Time Profiler»?

Registrare l’utilizzo della CPU, leggere gli alberi delle chiamate e trovare gli hot spot nel codice. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Fondamenti di Instruments: Time Profiler»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti di Instruments: Time Profiler
  2. Strumenti Allocations e Leaks
  3. Main Thread Checker e blocchi
  4. Ottimizzare gli hot path: COW, inlining e specializzazione
← Torna a Swift Academy