2010-05-20 14 views
13

Parece que no puedo encontrarlo en ninguna parte, pero estoy seguro de que debe haber una respuesta ...¿Cuántas conexiones de red simultáneas (concurrentes) admite iphone?

¿Cuántas conexiones HTTP simultáneas puede realizar una aplicación de iPhone? En otras palabras, si construyo y ejecuto un conjunto de NSURLConnections asincrónicamente, ¿cuántos pueden estar en vuelo antes de que comience a ponerlos en cola?

Además, ¿hay algún método para verificar cuántos subprocesos están disponibles y/o están en uso programáticamente?

Estoy tratando de escribir un motor inteligente de precarga, y estos límites (si los hubiera) serían información útil.

+0

no estoy seguro de que hay un límite - si la hay, es probable que sea el mismo que el OSX. – shosti

Respuesta

10

El iPhone no inicia las colas NSURConnection s. Esa es totalmente su responsabilidad. El iPhone iniciará todos sus NSURLConnection s asincrónicos en paralelo. Lo único que lo detendrá es tu memoria :) Recientemente implementé un grupo de conexiones (mi solución se basó en NSOperationQueue) solo por eso. Ahora puedo controlar las conexiones en paralelo y mi aplicación no falla al cargar cientos de imágenes de avatar.

Acerca de su segunda pregunta. De hecho, no sé sobre una forma de obtener la lista de hilos actuales. Yo tenía un aspecto en NSThread API, pero no hay señales de una API para que ..

+0

Estoy de acuerdo, pero supongo que si no hay un límite estricto, la respuesta que estoy buscando es cómo determinar cuáles son las limitaciones prácticas. Claro, podemos establecer arbitrariamente el límite en 2 o 3 o infinito, pero me gustaría desarrollar un sistema de administración más inteligente. Creo que la publicación a la que hice referencia en mi respuesta es la más cercana a eso. – DougW

1

Así que la razón por la que supuse que no puede haber un límite de conexiones simultáneas a nivel de sistema operativo móvil se debe a que muchos navegadores móviles hacen cumplir uno. Existen técnicas para acelerar la velocidad de carga de la versión móvil de su sitio web al garantizar que haya tan pocas extracciones de contenido adicionales como sea posible. Las imágenes son las principales culpables, pero los archivos css, javascript, etc. requieren una conexión adicional.

En dispositivos móviles, configurar y desmantelar una conexión es mucho más costoso que una conexión única con más datos, y una técnica para mejorar el rendimiento de carga de página es incluir CSS y JavaScript en la página.

Parece que esta limitación puede no existir en el sistema operativo, al menos en la plataforma de iphone.

En cuanto a una respuesta a esta pregunta, encontré esta publicación que discute las limitaciones prácticas de las conexiones simultáneas. No es un límite difícil, pero creo que responde al punto de la pregunta.

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

Cuestiones relacionadas