Swift Academy · Oppitunti

Instruments-perusteet: Time Profiler

Suorittimen käytön tallentaminen, kutsupuiden lukeminen ja koodin pullonkaulojen löytäminen.

Oppitunti 1/413 vaihetta

Instruments-perusteet: Time Profiler on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Miksi Instrumentsia käytetään?

Xcode Instruments on suorituskyvyn analysointityökalujen kokonaisuus. Time Profiler näyttää, mihin suoritinaikaa kuluu, jotta voitte löytää suorituskyvyn pullonkaulat.

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

Jäljityksen tallentaminen

Napsauttakaa Instrumentsin tallennuspainiketta, käyttäkää profiloitavaa ominaisuutta ja lopettakaa tallennus sen jälkeen.

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

Call Tree -näkymä

Call Tree näyttää funktiot niiden kuluttaman suoritinajan perusteella. Raskaimmat kutsupolut näkyvät hierarkian yläosassa.

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

Raskain pinojälki

Heaviest Stack Trace -paneeli näyttää eniten näytteistetyn yksittäisen kutsupolun – se on usein paras paikka optimoinnin aloittamiseen.

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

Näytteiden suodattaminen

Ottakaa käyttöön "Hide System Libraries" ja "Invert Call Tree", jotta voitte keskittyä omaan koodiinne Applen kehysten sijaan.

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

Siirtyminen lähdekoodiin

Siirtykää suoraan ongelman aiheuttavalle riville Xcodessa kaksoisnapsauttamalla symbolia kutsupuussa.

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

Time Profiler ja SwiftUI

SwiftUI-sovelluksissa etsikää odottamattomia body-kutsuja – liian tiheät uudelleenpiirrot näkyvät kutsupuussa toistuvina View.body-merkintöinä.

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

Pääsäikeen ja taustasäikeiden tarkasteleminen

Yläreunan säiekaista näyttää kunkin säikeen toiminnan. Taustasäikeiden suoritinpiikit voivat viitata siihen, että pääsäikeen ulkopuolella tehdään liikaa työtä.

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

Time Profiler käynnistymisen analysointiin

Mit­atkaa sovelluksen käynnistysaikaa profiloimalla sovelluksen käynnistyksestä alkaen ja tarkastelemalla jäljityksen ensimmäisiä sekunteja.

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

Vertailutason määrittäminen

Tallentakaa vertailutason jäljitys ennen optimointia. Tehkää muutosten jälkeen uusi profilointi ja verratkaa tuloksia parannuksen varmistamiseksi.

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

Vinkkejä tarkkaan profilointiin

Profiloikaa fyysisellä laitteella Release-koontiversiossa. Simulaattorit ja Debug-koontiversiot vääristävät suorituskykymittauksia.

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

Pikatarkistus

Mikä Instrumentsin kutsupuun asetus näyttää lehtifunktiot eli eniten aikaa kuluttavat funktiot luettelon yläosassa?

Oppitunnin yhteenveto

Profiloikaa komennolla Cmd+I → Time Profiler. Näyttäkää oma koodinne ensin käyttämällä asetuksia Invert Call Tree ja Hide System Libraries. Siirtykää lähdekoodiin kaksoisnapsauttamalla symboleja. Profiloikaa laitteella Release-tilassa. Määrittäkää vertailutasot ennen optimointia ja sen jälkeen parannusten varmistamiseksi.

Aloita maksutta

Opi Swift tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
122
Oppitunnit
409

Usein kysytyt kysymykset

Onko oppitunti ”Instruments-perusteet: Time Profiler” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Instruments-perusteet: Time Profiler”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Instruments-perusteet: Time Profiler”?

Suorittimen käytön tallentaminen, kutsupuiden lukeminen ja koodin pullonkaulojen löytäminen. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Instruments-perusteet: Time Profiler”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?

Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Instruments-perusteet: Time Profiler
  2. Allocations- ja Leaks-instrumentit
  3. Main Thread Checker ja jumiutumiset
  4. Kuumien suorituspolkujen optimointi: COW, inline ja erikoistaminen
← Takaisin: Swift Academy