2008-11-28 7 views
5

Ich bin neu bei Shark, und ich frage mich, ob es möglich ist, eine Zeitprobe auf eine bestimmte Methode einzugrenzen?Shark: wie man auf eine bestimmte Methode filtert

Sagen wir, ich möchte, nur um es zu wissen, wie viele Ressourcen wurden bei Aufrufen der Methode "Count" für alle NSArray (oder Unterklassen) Instanzen verwendet.

Antwort

2

Wenn Sie das Zeitprofil-Diagramm von unten nach oben anzeigen und jedes Mal, dass Benutzer in Bibliotheken Zeit für die Anrufer ausgeben, angeben, sollte Ihnen das zur Verfügung stehen, was Sie wollen. Sie können sehen, wie viel Zeit aufgrund von -count verbracht wurde (d. H. Sowohl beim Ausführen dieser Methode als auch bei der Ausführung der Methode). Außerdem können Sie herausfinden, wo Sie die Methode aufrufen. Es ist möglich, dass der Grund dafür, dass Sie so viel Zeit in count verbringen, nicht darin besteht, dass es lange dauert, sondern weil Sie es zu oft tun.

+0

Hallo Graham, ich bin verloren, könnten Sie genauer sein? Beziehen Sie sich auf ein Zeitprofildiagramm? Und was meinst du mit Laden? –

+0

Graham, könnten Sie genauer darüber sein, wie man es an der Schnittstelle macht? –

1

Die Zeit, die mindestens auf der Funktionsebene verbracht wird, ist genau das, was Instrumente Ihnen geben. Mit DTrace können Sie sogar tiefer graben. Vielleicht Checkout my blog post darüber. Das sollte hoffentlich die Dinge klären.

Sie könnten einfach ein DTrace-Skript schreiben, um beispielsweise die Speicherauslastung des Aufrufs auszudrucken.

prost, Torsten

1

Sie cmd-f getroffen für ein Symbol zu suchen. Stellen Sie sicher, dass das Kontrollkästchen "Automatisch erweitern" aktiviert ist, damit es in den Baum hineingeht. Möglicherweise müssen Sie Fenster -> Erweiterte Einstellungen anzeigen aktivieren.

Sobald Sie das Symbol finden, direkt darauf klicken und Sie haben einige Optionen:

  • Fokus Symbol: diese Sie nur die Anrufe filtern Stich lassen auf das Symbol, das Sie ausgewählt und unter

  • beibehalten Callstacks mit: dies können Sie alle Anrufe an das Symbol zu sehen und filtern alles andere

out Wenn Sie Sie fertig sind können mit der rechten Maustaste und "alle fokussieren" oder "alle wiederherstellen". Diese Befehle modifizieren den Abschnitt "Callstack Data Mining" in den erweiterten Einstellungen. Scherz damit herum.

Verwandte Themen