Podstawy Instruments: Time Profiler
Rejestrowanie użycia procesora, odczytywanie drzew wywołań i znajdowanie wąskich gardeł w kodzie.
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 pathNagrywanie ś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 analyzeWidok 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/calleesNajcięż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 CPUFiltrowanie 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 internalsPrzechodzenie 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 lineTime 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 modelAnalizowanie 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 isolationTime 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 renderUstalanie 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 InstrumentsWskazó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 consistencySzybkie 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ę.
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
- Podstawy Instruments: Time Profiler
- Instruments Allocations i Leaks
- Main Thread Checker i zawieszanie aplikacji
- Optymalizacja gorących ścieżek: COW, inlining i specjalizacja