Swift Academy · Lekcja

Podstawy Instruments: Time Profiler

Rejestrowanie użycia procesora, odczytywanie drzew wywołań i znajdowanie wąskich gardeł w kodzie.

Lekcja 1 z 413 kroki

Podstawy Instruments: Time Profiler to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Dlaczego Instruments?

Xcode Instruments to zestaw narzędzi do analizy wydajności. Time Profiler pokazuje, na co przeznaczany jest czas procesora, dzięki czemu można znaleźć wąskie gardła.

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

Nagrywanie śladu

Należy kliknąć przycisk nagrywania w Instruments, wykonać czynności związane z funkcją, którą chce się profilować, a następnie zatrzymać nagrywanie.

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

Widok drzewa wywołań

Call Tree pokazuje funkcje uporządkowane według zużytego czasu procesora. Najbardziej obciążające ścieżki wywołań znajdują się na górze hierarchii.

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

Najcięższy ślad stosu

Panel Heaviest Stack Trace pokazuje pojedynczą, najczęściej próbkowaną ścieżkę wywołań — często jest to najlepsze miejsce na rozpoczęcie optymalizacji.

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

Filtrowanie próbek

Należy włączyć opcje „Hide System Libraries” i „Invert Call Tree”, aby skupić się na własnym kodzie zamiast na frameworkach Apple.

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

Przechodzenie do kodu źródłowego

Dwukrotne kliknięcie symbolu w drzewie wywołań przenosi bezpośrednio do problematycznej linii w Xcode.

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

Time Profiler i SwiftUI

W aplikacjach SwiftUI należy zwrócić uwagę na nieoczekiwane wywołania body — nadmierne ponowne rysowanie pojawia się w drzewie wywołań jako powtarzające się wpisy 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

Analizowanie wątku głównego i wątków w tle

Pas wątków u góry pokazuje aktywność poszczególnych wątków. Skoki użycia procesora w wątkach działających w tle mogą wskazywać na nadmierną ilość pracy wykonywanej poza wątkiem głównym.

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

Time Profiler podczas uruchamiania

Czas uruchamiania aplikacji można zmierzyć, rozpoczynając profilowanie przy jej uruchomieniu i analizując pierwsze sekundy śladu.

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

Ustalanie wartości bazowej

Przed optymalizacją należy nagrać ślad bazowy. Po wprowadzeniu zmian trzeba ponownie wykonać profilowanie i porównać wyniki, aby potwierdzić poprawę.

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

Wskazówki dotyczące dokładnego profilowania

Profilowanie należy wykonywać na fizycznym urządzeniu w kompilacji Release. Symulatory i kompilacje Debug zniekształcają pomiary wydajności.

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

Szybkie sprawdzenie

Która opcja drzewa wywołań w Instruments umieszcza na początku listy funkcje liściowe, czyli najbardziej czasochłonne?

Podsumowanie lekcji

Profilowanie należy uruchomić za pomocą Cmd+I → Time Profiler. Opcje Invert Call Tree i Hide System Libraries pozwalają wyświetlić własny kod w pierwszej kolejności. Dwukrotne kliknięcie symboli umożliwia przejście do kodu źródłowego. Profilowanie należy wykonywać na urządzeniu w trybie Release. Przed i po optymalizacji należy ustalić wartości bazowe, aby potwierdzić poprawę.

Bezpłatny start

Ucz się Swift dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
122
Lekcje
409

Często zadawane pytania

Czy lekcja „Podstawy Instruments: Time Profiler” jest bezpłatna?

Tak — pełny tekst „Podstawy Instruments: Time Profiler” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Podstawy Instruments: Time Profiler”?

Rejestrowanie użycia procesora, odczytywanie drzew wywołań i znajdowanie wąskich gardeł w kodzie. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Podstawy Instruments: Time Profiler”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy Instruments: Time Profiler
  2. Instruments Allocations i Leaks
  3. Main Thread Checker i zawieszanie aplikacji
  4. Optymalizacja gorących ścieżek: COW, inlining i specjalizacja
← Powrót do Swift Academy