
¿Cómo puedo saber la cantidad máxima de subprocesos que puedo usar? Soy nuevo en programación, así que estoy tratando de descubrir lo que necesito saber. Tengo 950 GB de archivos para descargar desde Amazon S3. Estaba pensando que podría usar dos subprocesos que descarguen cada uno la mitad de esa cantidad, ejecutándose en paralelo.
Espero acelerar la descarga masiva de datos desde Amazon S3 mediante el uso de subprocesos múltiples en mi aplicación, pero sería bueno saber primero si mi computadora admite subprocesos múltiples.
Especificaciones de la computadora:
- Modelo: MacBook (13 pulgadas, mediados de 2010, A1342)
- Procesador:Intel Core Dúo de 2,4 GHz
- Memoria: DDR3 de 8 GB a 1067 MHz
- Software: MacOS Sierra 10.12.6
El procesador es muy antiguo y ha sido descontinuado, por lo que no es compatible con Intel Hyperthreading. No estoy seguro de si es bueno con subprocesos múltiples. Pero si puede admitir subprocesos múltiples, ¿cuántos subprocesos puede admitir? ¿Habría un impacto en el rendimiento si uso demasiados subprocesos?
Por favor corríjanme si me equivoco, pero lo leí.un núcleo sin hyperthreading puede admitir solo 1 subproceso, así que creo que tal vez mi procesador pueda admitir hasta 2 subprocesos, entonces más subprocesos después de eso tendrían un efecto insignificante.
Respuesta1
Hay varias suposiciones falsas en su pregunta, así que déjeme aclararlas aquí:
- El multiproceso es posible incluso en CPU de un solo núcleo.La ejecución simplemente se divide en el tiempo, por lo que tiene 1 subproceso activo en un momento dado; sin embargo, la ejecución general de los subprocesos es paralela.
- Multithreading no es equivalente a acelerar.Si se diseña ingenuamente, la aplicación de subprocesos múltiples siempre es decenas o incluso cientos de veces más lenta que la aplicación de un solo subproceso.
- La descarga desde redes externas en el 99% de los casos no depende del subproceso múltiple.Puede que valga la pena echarle un vistazo a la descarga HTTP de rango múltiple, tal como se implementó en aplicaciones como NetAnts, ReGet y otras de la era del módem de acceso telefónico. Sin embargo, no hay garantía de que la descarga de múltiples rangos pueda ser más rápida que la normal, debido a diversas políticas de red y servidores involucrados.
Entonces, después de todo. Definitivamente debes recopilar métricas en tu aplicación: ¿Cuál es el funcionamiento más lento? Y luego rediseñarlo para obtener más velocidad.
Respuesta2
¿Cómo puedo saber la cantidad máxima de subprocesos que puedo usar?
Intel Core Duo tiene 2 subprocesos debido a que tiene un procesador de un solo subproceso de 2 núcleos. Cada núcleo tiene la capacidad de un solo hilo.
Pero si puede admitir subprocesos múltiples, ¿cuántos subprocesos puede admitir? ¿Habría un impacto en el rendimiento si uso demasiados subprocesos?
Soporta 2 hilos.
así que estoy pensando que tal vez mi procesador pueda admitir hasta 2 subprocesos, entonces más subprocesos después de eso tendrían un efecto insignificante.
Es incapaz de manejar más de 2 subprocesos. Su aplicación multiproceso solo tendría dos subprocesos, ya que solo puede generar 2 subprocesos debido al hardware.