2009-09-28 18 views
27

Ich ein Profiling meine iPhone-Anwendung auf Ziel, und nach den Instrumenten 65% der Zeit ist in mach_msg_trap verbracht.Wie finde ich heraus, worauf mach_msg_trap wartet?

Ich habe einen Hintergrund Thread, der für immer läuft und Ergebnisse zurück an den Haupt Thread mit performSelectorOnMainThread:withObject:waitUntilDone:, ca. alle 2 Sekunden. Ich warte nicht bis zum Ende.

Antwort

24

Stellen Sie sich heraus, dass meine App nicht wirklich 65% ihrer Zeit in der mach_msg_trap Funktion ausgibt. Es war ein Konfigurationsfehler in meinem Instrument.

Das Sampler-Tool ist standardmäßig Alle Sample Counts, dies wird alle Threads unabhängig von ihrem Status messen.

Wechseln Sie stattdessen zu Running Sample Times, die die aktuelle tatsächliche Arbeitsauslastung widerspiegelt. Screenshot of Instruments http://developer.apple.com/library/mac/qa/qa2009/images/qa1619_running_sample_times.png

+1

Quelle: http://developer.apple.com/mac/library/qa/qa2009/qa1619.html – Nickolay

+2

alle Links sind hier gebrochen – grane2212

2

Wenn Sie nicht erwarten, dass Ihr Haupt-Thread etwas anderes tut, als auf diesen Hintergrund-Thread zu warten (oder auf Benutzereingaben wartet), müssen Sie sich keine Sorgen machen - Ihre Anwendung hat meistens nichts zu tun .

Wenn Sie erwarten, dass der Haupt-Thread aktiv etwas anderes tut, aktualisieren Sie bitte Ihre Frage, um das zu beschreiben. In diesem Fall sollten Sie sich die vollständigen Aufruf-Stacks von mach_msg_trap ansehen, da diese oft am unteren Ende eines Call-Stacks liegen, wo der eigentliche Zeitverschwender weiter oben liegt.

+0

Ich erwarte nicht, dass mein Haupt-Thread viel tut, außer das Update zu erhalten und den Bildschirm alle 2 Sekunden neu zu zeichnen. Ich erwarte jedoch, dass mein Hintergrund-Thread jeden letzten verbleibenden Taktzyklus in Anspruch nimmt. – PeyloW

+0

Ich denke immer noch, dass es sich lohnt, den Callstack über mach_msg_trap zu überprüfen, nur um Ihre Annahme zu überprüfen, dass der Hauptthread nur im Leerlauf sein sollte. – nall

Verwandte Themen