2012-06-16 3 views
11

저는 UIScrollView을 가지고 있습니다. 스크롤하는 동안 여러 개의 뷰를 배치하고 있습니다. API 끝점에서 이미지를 다운로드하고 있습니다. 문제는 스크롤링이 부드럽게 느껴지지 않는다는 것입니다. 나는 이것이 무엇인가가 메인 스레드를 막고 있기 때문이라는 것을 알고있다. 전체 코드를 검색하고 UI 업데이트 코드를 주석 처리했지만 스크롤 속도는 여전히 느립니다.메인 스레드를 차단하는 코드를 찾는 가장 좋은 방법은 무엇입니까?

코드의 어느 부분이 주 스레드를 차단하는지 찾는 가장 좋은 방법은 무엇입니까?

답변

7

인 스트 루먼트. 거기 abso-freaking-lutely 그것 같이 아무것도. 심지어 사과의 documentation에는 높은 CPU 관련 작업을 찾는 것에 대해 언급되어 있습니다.

개인적으로는 시간 프로필러를 사용하는 것이 좋습니다. 그 중 훌륭한 튜토리얼은 here입니다.

+0

실제로 악기를 사용하여 메인 스레드를 차단하는 것을 찾을 수 있습니까? – aherlambang

+0

예, 좀 더 자세히 설명해주십시오 : 특정 악기 템플릿이 어떤 작업이 내 메인 스레드를 차단하는지 찾을 수 있도록 도와 줄 수 있습니까? 링크 된 Apple 문서에 언급되지 않았거나 확실하지 않습니다. –

+0

코드에 전적으로 달려 있습니다. 인 스트 루먼트는 경우에 따라 스레드 교착 상태를 찾을 수 있지만 일반적으로 스레드 방해는 수동으로 스택 추적을 검사하는 데 더 적합한 디버깅 작업입니다. 게다가 쓰레드를 교착 상태로 만드는 방법은 다양하고 다양하여 애플조차도 매우 어려운 일이다. – CodaFi

관련 문제