2010-05-20 4 views
13

나는 어디서나 이걸 찾을 수없는 것 같지만 대답이 틀림 없다고 확신합니다 ...iphone을 지원하는 동시 (동시) 네트워크 연결은 몇 개입니까?

아이폰 앱 서비스는 몇개의 동시 HTTP 연결이 가능합니까? 다른 말로하면 NSURLConnections를 비동기 적으로 빌드하고 실행하면 얼마나 많은 큐가 대기 상태가되기 전에 대기 상태가 될 수 있습니까?

또한 사용 가능한 스레드 수와 프로그래밍 방식으로 사용중인 스레드 수를 확인할 수있는 방법이 있습니까?

지능형 프리 페칭 (pre-fetching) 엔진을 작성하려고하는데, 이러한 한계 (있는 경우)가 유용한 정보가됩니다.

+0

나는 한계가 확실하지 않다. – shosti

답변

10

iPhone이 대기열에 들어가기 시작하지 않습니다. NSURConnection s. 그것은 전적으로 당신의 책임입니다. iPhone은 모든 비동기를 병렬로 시작합니다. NSURLConnection. 그것을 막을 유일한 것은 당신의 기억이다. 나는 최근에 연결 풀 (내 솔루션은 NSOperationQueue을 기반으로했다.)을 구현했다. 이제 병렬 연결을 제어 할 수 있으며 수백 개의 아바타 이미지를로드 할 때 내 앱이 중단되지 않습니다.

두 번째 질문에 대해. 사실 현재 스레드 목록을 가져 오는 방법에 대해서는 알지 못합니다. NSThread API를 보았지만 그 API에 대한 흔적은 없었습니다 ..

+0

나는 동의한다. 그러나 어려운 제한이 없다면 나는 실제적인 한계가 무엇인지 결정하는 방법을 찾고있다. 물론 우리는 임의로 2 또는 3 또는 무한대로 제한을 설정할 수 있지만보다 지능적인 관리 시스템을 개발하고 싶습니다. 나는 나의 대답에서 언급 한 포스트가 그것에 가장 가깝다고 생각한다. – DougW

1

모바일 OS 수준에서 동시 연결 제한이있을 수 있다고 생각한 이유는 많은 모바일 브라우저에서이를 적용하기 때문입니다. 가능한 한 추가 콘텐츠 가져 오기가 거의 없도록함으로써 웹 사이트 모바일 버전의로드 속도를 높이는 기술이 있습니다. 이미지는 주요 범죄자이지만 CSS 파일, 자바 스크립트 파일 등은 모두 추가 연결이 필요합니다.

모바일 환경에서는 연결을 설정하고 끊는 것이 더 많은 데이터를 사용하는 단일 연결보다 훨씬 비쌉니다. 페이지로드 성능을 향상시키는 한 가지 방법은 페이지 자체에 CSS와 자바 스크립트를 임베드하는 것입니다.

적어도이 아이폰 플랫폼에는 OS 자체에는이 제한이 없을 수도 있습니다.

이 질문에 대한 답변에서 동시 연결의 실질적인 제한 사항을 설명하는이 게시물을 발견했습니다. 어려운 한도는 아니지만 문제의 요점에 답할 것 같습니다. 이 경우, 그것은 아마 OSX와 같은 -

Background threads consuming 100% CPU on iPhone 3GS causes latent main thread