2012-06-16 9 views
11

Ich habe eine UIScrollView, in der ich eine Reihe von Ansichten beim Scrollen platziert. Es lädt Bilder von einem API-Endpunkt. Das Problem ist, dass das Scrollen nicht so flüssig ist, wie es sein sollte. Ich weiß, dass das hauptsächlich daran liegt, dass der Hauptthread blockiert wird. Ich habe den gesamten Code durchsucht und alle UI-Aktualisierungscodes auskommentiert, aber das schnelle Scrollen ist immer noch verzögert.Was ist der beste Weg, um Code zu finden, der deinen Haupt-Thread blockiert?

Gibt es Hinweise darauf, wie Sie am besten herausfinden können, welcher Teil Ihres Codes den Hauptthread blockiert?

Antwort

7

Instrumente. Es gibt absolut nichts Genaues. Sogar Apples documentation darauf erwähnt das Finden von CPU-bezogenen Aufgaben.

Persönlich empfehle ich den Time Profiler. Von diesen kann ein hervorragendes Tutorial gefunden werden here.

+0

können Sie tatsächlich etwas finden, das den Hauptfaden mit Instrumenten blockiert? – aherlambang

+0

Ja, mehr Details bitte: Welche bestimmte Instruments-Vorlage kann mir helfen, herauszufinden, welche Operation meinen Haupt-Thread blockiert? Es ist entweder nicht in den verknüpften Apple-Dokumenten erwähnt oder nicht offensichtlich. –

+0

Das hängt ganz von Ihrem Code ab. In einigen Fällen können Geräte Thread-Deadlocks finden, aber Thread-Blockierung ist im Allgemeinen eine Debugging-Aufgabe, die eher dazu geeignet ist, Stack-Traces manuell zu untersuchen. Außerdem ist die Anzahl der Möglichkeiten, einen Thread zu blockieren, reichlich und vielfältig, was sogar für Apple eine sehr schwierige Lösung darstellt. – CodaFi

Verwandte Themen