0Pricing
Swift Academy · Lektion

Instruments-Grundlagen: Time Profiler

Zeichnen Sie CPU-Auslastung auf, lesen Sie Aufrufbäume und finden Sie Hotspots in Ihrem Code.

Instruments-Grundlagen: Time Profiler ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Instruments?

Xcode Instruments ist eine Suite zur Performanceanalyse. Der Time Profiler zeigt, wofür CPU-Zeit aufgewendet wird, damit Sie Hotspots finden können.

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

Eine Aufzeichnung erstellen

Klicken Sie in Instruments auf die Aufnahmeschaltfläche, verwenden Sie die Funktion, die Sie analysieren möchten, und beenden Sie anschließend die Aufzeichnung.

// 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

Die Call-Tree-Ansicht

Der Call Tree zeigt Funktionen nach der von ihnen verbrauchten CPU-Zeit an. Die aufwendigsten Aufrufpfade erscheinen oben in der Hierarchie.

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

Der schwerste Stack Trace

Das Bedienfeld „Heaviest Stack Trace“ zeigt den am häufigsten abgetasteten einzelnen Aufrufpfad – oft ist dies der beste Ausgangspunkt für Optimierungen.

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

Samples filtern

Aktivieren Sie „Hide System Libraries“ und „Invert Call Tree“, um sich auf Ihren eigenen Code statt auf Apple-Frameworks zu konzentrieren.

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

Zum Quellcode navigieren

Doppelklicken Sie im Call Tree auf ein Symbol, um in Xcode direkt zur betreffenden Zeile zu springen.

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

Time Profiler und SwiftUI

Achten Sie in SwiftUI-Apps auf unerwartete Aufrufe von body – übermäßige Neuzeichnungen erscheinen im Call Tree als wiederholte Einträge von View.body.

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

Hauptthread und Hintergrundthreads untersuchen

Die Thread-Spur oben zeigt die Aktivität jedes Threads. CPU-Spitzen in Hintergrundthreads können auf übermäßige Arbeit außerhalb des Hauptthreads hindeuten.

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

Time Profiler für den App-Start

Messen Sie die Startzeit der App, indem Sie die Analyse beim Start beginnen und die ersten Sekunden der Aufzeichnung betrachten.

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

Eine Baseline festlegen

Erstellen Sie vor der Optimierung eine Baseline-Aufzeichnung. Analysieren Sie die App nach den Änderungen erneut und vergleichen Sie die Ergebnisse, um die Verbesserung zu bestätigen.

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

Tipps für eine genaue Performanceanalyse

Führen Sie die Analyse auf einem physischen Gerät in einem Release-Build durch. Simulatoren und Debug-Builds verfälschen die Performance-Messungen.

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

Kurze Prüfung

Welche Option im Call Tree von Instruments zeigt die Blattfunktionen (also die Funktionen mit dem höchsten Zeitverbrauch) oben in der Liste an?

Zusammenfassung der Lektion

Starten Sie die Analyse mit Cmd+I → Time Profiler. Verwenden Sie „Invert Call Tree“ und „Hide System Libraries“, um Ihren Code zuerst zu sehen. Doppelklicken Sie auf Symbole, um zum Quellcode zu navigieren. Analysieren Sie die App auf einem Gerät im Release-Modus. Erstellen Sie vor und nach Optimierungen Baselines, um Verbesserungen zu bestätigen.

Häufig gestellte Fragen

Ist die Lektion „Instruments-Grundlagen: Time Profiler“ kostenlos?

Ja — der vollständige Text von „Instruments-Grundlagen: Time Profiler“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Instruments-Grundlagen: Time Profiler“?

Zeichnen Sie CPU-Auslastung auf, lesen Sie Aufrufbäume und finden Sie Hotspots in Ihrem Code. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Instruments-Grundlagen: Time Profiler“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Instruments-Grundlagen: Time Profiler
  2. Allocations- und Leaks-Instruments
  3. Main Thread Checker und Hänger
  4. Hot Paths optimieren: COW, Inlining und Spezialisierung
← Zurück zu Swift Academy