IOS SDK Tidsprofilering med instrument

Instrument är ett utmärkt verktyg som tillhandahålls av Apple för att låta utvecklare fästa sina applikationer för bästa prestanda. Medan otroligt användbar, undviker många utvecklare tillämpningen av rädsla för att inte veta alla insatser och dess funktionalitet. Idag har jag några snabba tips som du kan använda i några mycket grundläggande instrument användningssaker. Låt oss dyka in!


Time Profiler

När du navigerar runt din ansökan kan du märka några förseningar som du vill minska för att få den bästa användarupplevelsen. Om du vill undersöka var OS spenderar tid när du använder en applikation, är Time Profiler för dig. Tidsprofilen är den plats där de flesta utvecklare får det snabbaste värdet från Instruments, så vi kommer att fokusera våra tips på det här verktyget, även om många av dem även gäller de andra instrumentverktygen. Till att börja med öppnar du Instrument och hälsas med den här menyn:

Som du kanske kan gissa, väljer vi Time Profiler. För att ge dig värdefull återkoppling bör du köra din ansökan på din enhet. När din applikation körs borde du klicka på fältet som säger "Alla processer" i övre högra hörnet. Välj sedan den specifika applikationen du vill ha Time Profile.

Med detta gjort kan vi börja våra Time Profile-test genom att trycka på inspelningsknappen. Detta kommer att starta applikationen på telefonen och du kommer att börja tidsprofilering. Knacka runt på din ansökan och använd den, du kommer att se en växande stapel klasser, symboler och minnesadresser. Det är svårt att göra huvud eller svansar, va? Låt oss göra dessa data lite tydligare.


Tips 1: Konfigurera Profiler-inställningar

Du kommer att vilja ändra några av inställningarna "Call Tree" på vänster sida av Instrument. Detta gör att instrumenten läses mycket tydligare att läsa.

Du bör först stänga av samtalstreet och sedan be om att visa endast objektiva C. För de flesta projekt blir det den mest produktiva bilden av dina data. Med detta gjort kommer Instrumenterna att presentera en topp ned koll på de olika aktiviteterna som händer inom din ansökan, tillsammans med en procentandel av tiden som spenderas för varje process. Om du vill påskynda din ansökan kan du följa de höga procentenheterna ner till dina specifika klasser. För mitt test kan jag se att det mesta av min tid spenderas i min SignatureViewCell touchesMoved: withEvent: metod. Om jag ville hitta platser att optimera skulle det vara det bästa stället att leta efter. Dubbelklicka på en rad kommer till och med att ta dig till den specifika koden den refererar till:

Så, nu vet vi hur vi tittar på rapporteringen från Time Profiler och lär oss av det. Men hur får vi mer inblick i när vissa operationer inträffar under vårt test? Med hjälp av instrument kan du "flagga" som du slår på på din enhet för att markera när du gjorde vissa aktiviteter.


Tips 2: Lägga till tidslinjeflaggor

När du använder din applikation och Time Profiler spelar in, kan du hålla alternativet och klicka på fästningarna strax ovanför tidslinjen. Detta lägger till användarflaggor där du kan anteckna de åtgärder du gjorde vid den tiden under inspelning. Detta kommer att vara till nytta när du försöker fokusera på en specifik övergång, animering eller annan operation vid körning.

Så det här är allt bra, men vad sägs om att fokusera på en liten del av hela detta utförande. Om jag ville fokusera på en enda animering skulle det vara svårt att få instrument att fokusera på på det. Lyckligtvis tillhandahålls denna funktionalitet också.


Tips 3: Ställa in ett fokusfönster

Instrument låter dig fokusera på vissa tidsperioder eller operationer för högre upplösningstidsrapporter. Om du vill "zooma" in i en viss operation kan du klicka på pilen bredvid den, vilket ändrar procentandelarna som är kopplade till operationer som endast baseras på den moderoperationen och dess barn. Det här är verkligen användbart när du fokuserar på en enda visningskontrollers funktionalitet. Det andra sättet att fokusera på är att välja ett visst tidsfönster som du vill undersöka. Detta uppnås genom att hålla alternativet över tidsprofilens tidslinje och klicka och dra och dra det intressanta området. Detta kommer att filtrera samtalstreen för att bara visa operationer under det tidsfönstret. Detta i kombination med användarflaggor kan hjälpa dig att komma till hjärtat av ett problem mycket snabbt.