IOS SDK Tidsprofilering med instrumenter

Instrumenter er et flott verktøy levert av Apple for å la utviklere legge sine applikasjoner for best mulig ytelse. Selv om det er utrolig nyttig, unngår mange utviklere søknaden for frykt for ikke å kjenne til alle innsatsene i funksjonaliteten. I dag har jeg noen få raske tips som du kan bruke i noen svært grunnleggende Instruments bruk saker. La oss dykke inn!


The Time Profiler

Når du navigerer rundt søknaden din, kan det hende du oppdager noen forsinkelser som du vil redusere for å få den beste brukeropplevelsen. Hvis du vil undersøke hvor operativsystemet bruker tid som du bruker et program, så er Time Profiler for deg. Tidsprofileren er stedet der de fleste utviklere får den raskeste verdien fra Instruments, så vi skal fokusere våre tips på dette verktøyet, selv om mange av dem også gjelder for de andre instrumentverktøyene. For å begynne vil du åpne Instrumenter og bli møtt med denne menyen:

Som du kanskje gjetter, skal vi velge Time Profiler. For å gi deg verdifull tilbakemelding bør du kjøre programmet på enheten din. Når søknaden din kjører, bør du klikke på feltet som sier "Alle prosesser" øverst i høyre hjørne. Deretter velger du det spesifikke programmet du vil Time Profile.

Med dette gjort kan vi starte våre Time Profile-tester ved å trykke på opptaksknappen. Dette vil starte programmet på telefonen, og du vil begynne å profilere tid. Trykk rundt på applikasjonen din og bruk den, du vil se en voksende bunke klasser, symboler og minneadresser. Kan ikke være vanskelig å lage hoder eller haler av, va? La oss gjøre disse dataene litt klarere.


Tips 1: Konfigurer profilerpreferanser

Du kommer til å ønske å endre noen av innstillingene "Call Tree" på venstre side av Instruments. Dette vil gjøre at instrumentene leses mye klarere å lese.

Du bør først slå av omvendt anropstreet og neste spør det om å bare vise objektiv C. For de fleste prosjekter vil dette være den mest produktive visningen av dataene dine. Med dette gjort, vil Instrumenter gi deg et topp nedblikk på de forskjellige operasjonene som skjer i søknaden din, sammen med en prosentandel av tiden som brukes til å håndtere hver prosess. Hvis du ønsker å øke hastigheten på søknaden din, kan du følge de høye prosentpoengene ned til dine spesifikke klasser. For min test kan jeg se at det meste av tiden min blir brukt i SignatureViewCell touchesMoved: withEvent: metoden. Hvis jeg ønsket å finne steder å optimalisere, ville det være det beste stedet å se. Dobbeltklikk på en linje vil til og med føre deg til den spesifikke koden den refererer til:

Så nå vet vi hvordan vi skal se på rapporteringen fra Time Profiler og lære av det. Men hvordan får vi mer innblikk i når visse operasjoner skjer under testen? Vel, Instrumenter lar deg "flagge" som du slår på på enheten din for å markere når du gjorde bestemte aktiviteter.


Tips 2: Legge til tidslinjeflagger

Når du bruker din søknad og Time Profiler er innspilling, kan du holde alternativet og klikke på flåttene rett over tidslinjen. Dette vil legge til brukerflagg der du kan annotere handlingene du gjorde på det tidspunktet under opptak. Dette vil komme til nytte når du prøver å fokusere på en bestemt overgang, animasjon eller annen operasjon ved kjøring.

Så dette er alt bra, men hva med å fokusere på en liten del av hele denne kjøringen. Hvis jeg ønsket å fokusere på en enkelt animasjon, ville det være vanskelig å få instrumenter til å fokusere på det. Heldigvis er denne funksjonaliteten også gitt.


Tips 3: Angi et fokusvindu

Instrumenter lar deg fokusere på bestemte tidsperioder eller operasjoner for høyere oppløsningstidsrapporter. Hvis du vil "zoome" inn i en bestemt operasjon, kan du klikke på pilen ved siden av den, som vil endre prosentsatsene som er knyttet til operasjoner, bare basert på den overordnede operasjonen og dens barn. Dette er veldig nyttig når du fokuserer på en enkelt visningskontrollers funksjonalitet. Den andre måten å fokusere på er å velge et bestemt tidsvindu som du vil undersøke. Dette oppnås ved å holde alternativet over tidsprofilens tidslinje og klikke og drar området av interesse. Dette vil filtrere anropstreet for kun å vise operasjoner i det tidsvinduet. Dette i kombinasjon med brukerflagger kan hjelpe deg med å komme til hjertet av et problem veldig raskt.