iOS SDK Zeitprofilierung mit Instrumenten

Instruments ist ein großartiges Werkzeug, das Apple zur Verfügung stellt, damit Entwickler ihre Anwendungen für die beste Leistung optimieren können. Obwohl sie unglaublich nützlich sind, meiden viele Entwickler die Anwendung aus Angst, nicht alle Funktionen ihrer Funktionalität zu kennen. Heute habe ich ein paar schnelle Tipps, die Sie in einigen sehr einfachen Instrument-Anwendungsfällen verwenden können. Lass uns eintauchen!


Der Zeitprofiler

Wenn Sie in Ihrer Anwendung navigieren, stellen Sie möglicherweise Verzögerungen fest, die Sie reduzieren möchten, um die beste Benutzererfahrung zu erzielen. Wenn Sie untersuchen möchten, wo das Betriebssystem Zeit verbringt, während Sie eine Anwendung verwenden, ist der Zeitprofiler für Sie bestimmt. Der Zeitprofiler ist der Ort, an dem die meisten Entwickler den schnellsten Nutzen aus Instrumenten ziehen. Daher werden wir unsere Tipps auf dieses Werkzeug konzentrieren, obwohl viele von ihnen auch für die anderen Instrumentenwerkzeuge gelten. Zunächst öffnen Sie Instrumente und werden mit diesem Menü begrüßt:

Wie Sie sich vorstellen können, werden wir den Zeitprofiler auswählen. Damit Sie wertvolles Feedback erhalten, sollten Sie Ihre Anwendung auf Ihrem Gerät ausführen. Wenn Ihre Anwendung ausgeführt wird, sollten Sie oben rechts auf das Feld "Alle Prozesse" klicken. Wählen Sie dann die gewünschte Anwendung für das Zeitprofil aus.

Danach können wir unsere Zeitprofiltests durch Drücken der Aufnahmetaste starten. Dadurch wird die Anwendung auf dem Telefon gestartet, und Sie beginnen mit der Zeitprofilerstellung. Tippen Sie auf Ihre Anwendung und verwenden Sie sie. Sie werden einen wachsenden Stapel von Klassen, Symbolen und Speicheradressen sehen. Irgendwie schwer, Köpfe oder Schwänze daraus zu machen, oder? Lassen Sie uns diese Daten etwas klarer machen.


Tipp 1: Konfigurieren Sie die Profiler-Einstellungen

Sie möchten einige der "Call Tree" -Einstellungen auf der linken Seite von Instruments ändern. Dadurch wird das Lesen der Instrumente deutlich lesbarer.

Deaktivieren Sie zunächst die Umkehrung des Aufrufbaums und fordern Sie ihn anschließend auf, nur Ziel C anzuzeigen. Für die meisten Projekte ist dies die produktivste Ansicht Ihrer Daten. Wenn dies erledigt ist, zeigt Instruments Ihnen einen Überblick über die verschiedenen Vorgänge in Ihrer Anwendung sowie einen Prozentsatz der Zeit, die für die Verarbeitung jedes Vorgangs aufgewendet wird. Wenn Sie Ihre Bewerbung beschleunigen möchten, können Sie den hohen Prozentsatz bis zu Ihren spezifischen Klassen verfolgen. Für meinen Test kann ich feststellen, dass die meiste Zeit in meiner SignatureViewCell touchesMoved: withEvent: -Methode verbracht wird. Wenn ich Orte zum Optimieren suchen wollte, wäre das der beste Ort zum Suchen. Ein Doppelklick auf eine Zeile bringt Sie sogar zu dem spezifischen Code, auf den sie verweist:

Jetzt wissen wir, wie wir das Reporting von Time Profiler betrachten und daraus lernen können. Aber wie bekommen wir mehr Einblick in bestimmte Vorgänge während unseres Tests? Nun, Instruments ermöglicht Ihnen das Markieren, wenn Sie auf Ihrem Gerät tippen, um zu kennzeichnen, wann Sie bestimmte Aktivitäten ausgeführt haben.


Tipp 2: Hinzufügen von Zeitleistenflags

Wenn Sie Ihre Anwendung verwenden und der Time Profiler aufzeichnet, können Sie die Option halten und auf die Häkchen direkt über der Timeline klicken. Dadurch werden Benutzerflags hinzugefügt, in denen Sie die Aktionen, die Sie zu diesem Zeitpunkt während der Aufnahme ausgeführt haben, mit Anmerkungen versehen können. Dies ist praktisch, wenn Sie versuchen, sich zur Laufzeit auf einen bestimmten Übergang, eine Animation oder einen anderen Vorgang zu konzentrieren.

Das ist alles großartig, aber was ist mit der Fokussierung auf einen kleinen Teil der gesamten Hinrichtung? Wenn ich mich auf eine einzige Animation konzentrieren wollte, wäre es schwierig, Instrumente dazu zu bekommen, sich darauf zu konzentrieren. Glücklicherweise ist auch diese Funktionalität verfügbar.


Tipp 3: Ein Fokusfenster einstellen

Mit Instruments können Sie sich auf bestimmte Zeiträume oder Vorgänge konzentrieren, um Zeitberichte mit höherer Auflösung zu erhalten. Wenn Sie einen bestimmten Vorgang "zoomen" möchten, können Sie auf den Pfeil daneben klicken. Dadurch werden die Prozentsätze der Vorgänge so geändert, dass sie nur auf diesem übergeordneten Vorgang und seinen untergeordneten Elementen basieren. Dies ist sehr nützlich, wenn Sie sich auf die Funktionalität eines einzelnen View-Controllers konzentrieren. Die andere Möglichkeit, sich zu fokussieren, besteht darin, ein bestimmtes Zeitfenster auszuwählen, das Sie untersuchen möchten. Dies wird erreicht, indem Sie die Option über die Zeitleiste des Zeitprofilers halten und auf den gewünschten Bereich klicken und ihn ziehen. Dadurch wird die Aufrufstruktur so gefiltert, dass nur Vorgänge während dieses Zeitfensters angezeigt werden. In Verbindung mit Benutzerflags können Sie das Problem sehr schnell auf den Punkt bringen.