Colección de citas famosas - Slogan de motivación - El lenguaje C utiliza lectura para leer la información del puerto serie. ¿Existe alguna diferencia en eficiencia entre leer por bytes y leer una cierta longitud a la vez?
El lenguaje C utiliza lectura para leer la información del puerto serie. ¿Existe alguna diferencia en eficiencia entre leer por bytes y leer una cierta longitud a la vez?
Definitivamente hay una diferencia y es grande.
Debido a que read es un programa en modo de usuario, y cada lectura corresponde a una llamada al sistema (cambiar del modo de usuario al modo kernel y luego volver al modo de usuario), de hecho, lo que consume más tiempo es el interruptor de estado.
Si lees 5 bytes a la vez, solo hay una llamada al sistema (dos cambios de estado).
Si lee un byte a la vez, deberá leerlo cinco veces y habrá cinco llamadas al sistema (10 cambios de estado).
La diferencia específica está relacionada con el entorno real y se necesitan muchos datos para verlo durante las pruebas.