Sé que un ciclo infinito al tipo no deseado generalmente causa un alto uso de la CPU. Pero, no entiendo muy bien por qué. ¿Alguien puede explicarme eso?¿por qué un bucle infinito del tipo no intencionado aumenta el uso de la CPU?
Respuesta
Los bucles infinitos no son diferentes de cualquier otro código en ejecución. La computadora no sabe que el ciclo infinito no es un cálculo complicado que solo requiere muchas iteraciones.
A menos que el bucle infinito contenga un código que llama a algunas funciones del sistema que devuelven tiempo al sistema operativo, el sistema operativo lo trata como un proceso que está trabajando activamente en algo y le da tiempo para ejecutarlo. Si no se están ejecutando otros procesos, consumirá el 100% de la CPU (en un solo sistema central).
La CPU no puede hacer nada más mientras está ejecutando ese ciclo (que nunca termina). Incluso si está utilizando un sistema multitarea preventivo (de modo que el bucle infinito solo obstruirá para siempre su propio proceso o subproceso), el bucle "comerá" su porción de tiempo cada vez que el planificador preventivo del sistema operativo le entregue el CPU para la siguiente porción: sin hacer nada, pero consumiendo el tiempo de CPU de una rebanada cada vez, por lo que se pierde mucha CPU de todos los otros hilos que podrían hacer un trabajo útil.
Esta respuesta, aunque puede ser correcta, parece demasiado difícil y, por lo tanto, no es muy útil para las personas que hacen este tipo de preguntas. Además del amplio uso de términos técnicos, la segunda oración, que es la mayor parte del párrafo, es particularmente demasiado larga para analizar. – sawa
Los bucles infinitos en sí mismos no son un problema en absoluto. La mayoría de las aplicaciones que interactúan con un usuario son bucles infinitos. Esperan repetidamente al usuario, actúan sobre él y vuelven a realizar el ciclo. El sistema operativo en sí es un bucle infinito. Se dice que estos tipos de ciclo infinito son "productivos" porque, a pesar de repetir algo de forma indefinida, generan periódicamente algo útil para el usuario.
Supongo que su preocupación es con bucles infinitos improductivos. Pero está claro por qué estos son un problema. Tienen todas las desventajas de los bucles productivos (consumen potencia, usan tiempo de CPU, etc.) sin ninguna de las ventajas, es decir. ellos no producen nada útil.
Aunque su primer párrafo es informativo y útil, el segundo párrafo es circular. La pregunta es, ¿por qué los bucles infinitos del tipo no intencionado "consumen energía, usan tiempo de CPU, etc."? – sawa
Usted probablemente está refiriendo a la Halt and Catch Fire instruction
- 1. uso de la CPU aumentando hasta 100% en bucle infinito en el hilo
- 2. gramática Cima del bucle infinito
- 3. ¿Por qué este programa entra en un bucle infinito?
- 4. Python: ¿por qué este código tarda una eternidad (bucle infinito?)
- 5. Jquery - bucle infinito
- 6. ¿Por qué manejador de señal va al bucle infinito? - SIGSEGV
- 7. Aumenta el uso de la CPU de unicornio durante las pruebas de carga, formas de optimizar
- 8. bucle infinito en C++
- 9. El uso de javascript setInvertal aumenta el consumo de memoria de la CPU
- 10. Mejor bucle infinito
- 11. C# flotan bucle infinito
- 12. Recolección de basura del objeto creado en el bucle infinito
- 13. Arduino atrapado en un bucle infinito
- 14. IIS 7.5 Reescribir el error? Bucle infinito
- 15. Finalizer atrapado en un bucle infinito
- 16. Infinito IEnumerable en un bucle foreach
- 17. Predicado Prólogo - bucle infinito
- 18. Cálculo del uso de CPU
- 19. bucle infinito en java.util.HashMap
- 20. ¿Por qué Task.Delay() permite un retraso infinito?
- 21. ¿Por qué este script de Python crea un bucle infinito? (recursión)
- 22. Uso de la CPU en el modo por lotes superior
- 23. Javascript bucle infinito con defineSetter
- 24. Cómo interrumpir correctamente un bucle infinito QThread
- 25. prueba unitaria de Python contra un bucle infinito potencial
- 26. ¿Cuándo la inferencia de tipo Java produce un tipo infinito?
- 27. Bucle infinito al usar loadView
- 28. C#: Crear uso de la CPU a un porcentaje personalizado
- 29. Fast Repeat TakeWhile causa un bucle infinito
- 30. Python: ¿un comando de teclado para detener el bucle infinito?
en realidad moderna de propósito general O/S, cualquier código en su sano juicio va a entrar en un estado de espera interrumpible que se detiene el núcleo de la ejecución de cualquier cosa en ese hilo hasta que se necesita. –
De acuerdo, pero mi comparación fue con un cálculo intenso, como los realizados para la investigación académica. – NilObject