iOS SDK tijdprofilering met instrumenten

Instrumenten is een geweldige tool die door Apple wordt geboden om ontwikkelaars hun toepassingen te laten verbeteren voor de beste prestaties. Hoewel het ongelooflijk handig is, vermijden veel ontwikkelaars de applicatie omdat ze bang zijn dat ze niet alle ins en outs van de functionaliteit kennen. Vandaag heb ik een paar snelle tips die u kunt gebruiken in een aantal zeer eenvoudige gebruiksgevallen voor instrumenten. Laten we erin duiken!


The Time Profiler

Wanneer u door uw toepassing navigeert, merkt u mogelijk enkele vertragingen die u wilt verminderen om de beste gebruikerservaring te bieden. Als je wilt onderzoeken waar het besturingssysteem tijd doorbrengt terwijl je een applicatie gebruikt, dan is de Time Profiler iets voor jou. De tijdprofiler is de plaats waar de meeste ontwikkelaars de snelste waarde van Instruments krijgen, dus we gaan onze tips op deze tool focussen, hoewel veel van hen ook van toepassing zijn op de andere instrumenttools. Om te beginnen, opent u Instrumenten en wordt u begroet met dit menu:

Zoals je misschien wel denkt, gaan we de Time Profiler selecteren. Om dit waardevolle feedback te geven, zou u uw applicatie op uw apparaat moeten uitvoeren. Terwijl uw toepassing wordt uitgevoerd, klikt u in de rechterbovenhoek op het veld met de tekst 'Alle processen'. Selecteer vervolgens de specifieke toepassing die u wilt gebruiken voor het tijdprofiel.

Nu dit is voltooid, kunnen we onze tijdprofieltests beginnen door op de opnameknop te drukken. Hiermee start u de toepassing op de telefoon en begint u met het profileren van de tijd. Tik rond op je applicatie en gebruik het, je ziet een groeiende stapel klassen, symbolen en geheugenadressen. Nogal moeilijk om kop of munt van te maken, huh? Laten we deze gegevens een beetje duidelijker maken.


Tip 1: Profiler-voorkeuren configureren

U wilt enkele van de "Call Tree" instellingen aan de linkerkant van Instrumenten veranderen. Dit maakt de instrumenten veel leesbaarder om te lezen.

U moet eerst de inschakelboom uitschakelen en vervolgens alleen object C weergeven. Voor de meeste projecten is dit de meest productieve weergave van uw gegevens. Als dit klaar is, presenteert Instruments u een top-down blik op de verschillende bewerkingen die plaatsvinden in uw toepassing, samen met een percentage van de tijd besteed aan het verwerken van elk proces. Als u uw toepassing wilt versnellen, kunt u de hoge percentagemarkeringen naar uw specifieke klassen volgen. Voor mijn test kan ik zien dat het grootste deel van mijn tijd wordt doorgebracht in mijn SignatureViewCell raaktMuffed: withEvent: -methode. Als ik plaatsen wilde vinden om te optimaliseren, zou dat de beste plek zijn om te kijken. Dubbelklikken op een regel brengt u zelfs naar de specifieke code waarnaar wordt verwezen:

Dus nu weten we hoe we de rapportage van Time Profiler moeten bekijken en ervan leren. Maar hoe krijgen we meer inzicht in wanneer bepaalde bewerkingen plaatsvinden tijdens onze test? Met Instrumenten kunt u 'markeren' terwijl u op uw apparaat tikt om te markeren wanneer u bepaalde activiteiten hebt uitgevoerd.


Tip 2: Tijdlijnvlaggen toevoegen

Terwijl je je applicatie gebruikt en Time Profiler aan het opnemen is, kun je de optie vasthouden en op het vinkje net boven de tijdlijn klikken. Hiermee worden gebruikersvlaggen toegevoegd, waar u aantekeningen kunt maken van de acties die u op dat moment tijdens de opname deed. Dit is handig als u tijdens runtime wilt focussen op een specifieke overgang, animatie of andere bewerking.

Dus dit is allemaal geweldig, maar hoe zit het met het concentreren op een klein deel van deze hele uitvoering. Als ik me wilde concentreren op een enkele animatie, zou het moeilijk zijn om instrumenten daarop te laten focussen. Gelukkig is deze functionaliteit ook aanwezig.


Tip 3: een focusvenster instellen

Met instrumenten kunt u zich concentreren op bepaalde perioden of bewerkingen voor rapporten met een hogere resolutie. Als u wilt "inzoomen" naar een specifieke bewerking, kunt u klikken op de pijl ernaast, die de percentages die verband houden met bewerkingen alleen op die bovenliggende bewerking en zijn onderliggende elementen zal worden gebaseerd. Dit is erg handig bij het focussen op de functionaliteit van een enkele view controller. De andere manier om je te concentreren is door een bepaald tijdsvenster te selecteren dat je zou willen onderzoeken. Dit wordt bereikt door de optie over de tijdlijn van de tijdprofiler te houden en op het gewenste gebied te klikken en te slepen. Hiermee filtert u de oproepboom om alleen bewerkingen weer te geven in dat tijdvenster. Dit in combinatie met gebruikersvlaggen kan u helpen om zeer snel tot de kern van een probleem te komen.