2011-01-24 6 views

답변

5

가능한 한 주 스레드에서 수행하지 마십시오. NSOperations/GCD 및 기타 백그라운드 기술을 사용하여 메인 스레드에서 모든 것을로드하십시오. 그리고 다른 사람들이 말한 것 :

2

큰 이미지/비디오/오디오 파일을 사용하거나 적극적으로 사용되지 않는 개체를 많이 초기화하지 말고 가능하면 해제하십시오.

2

UITableView를 사용하는 경우 모든 데이터를 미리 준비하고 tableView : cellForRowAtIndexPath : delegate 메서드 내의 관련 모델 클래스 인스턴스에서 가져 오기만하면 응답 속도가 느려집니다.

또한 올바른 작업을 수행하고 제공된 UITableView에서 dequeueReusableCellWithIdentifier 메서드를 사용해야합니다.

5

귀하의 질문은 일반적인 답변이지만 답변은 "메모리 관리"입니다.

지금까지 제공된 모든 대답이 모두이 범주에 속합니다. 미디어 (비디오, 오디오, 사진)를 재생하든 (UITableView를 사용하여) 데이터를 표시하든 관계없이 낮은 메모리를 위해 최적화하고 싶습니다.

트릭은 주어진 시간에 필요한 것만을로드하는 것입니다.

또한, GCD.

+1

+1 내 UITableView 응답에도 불구하고 사용자 인터페이스의 응답 성도 중요한 문제입니다. –

+0

높은 수준의 질문이므로 최대한 빨리 배우는 것이 필요합니다. 모든 대답은 나를 도웁니다 :-) –

+2

실제로, 그 반대는 종종 사실입니다. 많은 메모리를 사용하여 많은 오디오 파형, 비트 맵, 미리 렌더링 된 이미지 등을 미리 스테이징 또는 캐시하여 인스턴트 (로드 또는 드로잉 타임이 없음) 근처에서 UI에 표시 할 수 있습니다. 미리로드하고 미리 렌더링 할 수 있으면 (백그라운드에서 느리게), 사용자가 볼 시간이 적어집니다. 속도를 높이려면 OS가이 캐시를 사용할 수있는만큼의 메모리를 사용하십시오. – hotpaw2

2

메인 UI 스레드에서 실행되는 모든 메소드와 함수를 프로파일 링하고 실행 루프로 완전히 빠져 나오기 위해 서브 루틴과 델리게이트를 포함한 모든 메소드가 최대 16 밀리 초보다 짧아야합니다. 이러한 UI 방법과 함께 모든 UI 드로잉 업데이트가 최대 16mS 미만을 차지하도록하십시오. 그러면 UI가 60fps (현재 장치에서 가능한 최대)로 실행될 수 있으며 입력 이벤트를 놓치지 않을 것입니다.

그 밖의 모든 이미지로드, 모든 네트워크 데이터 전송, 모든 처리 등은 비동기 및/또는 백그라운드 스레드에서 실행됩니다.

은 (그리고 어떤 사람들은 다른 사람뿐만 아니라했다 ... :) 최대한

1

사용 핵심 데이터를. 코어 데이터를 사용하는 것이 다른 방법을 사용할 때보 다 최악의 경우를 본 적이 없습니다.

관련 문제