El lenguaje C utiliza lectura para leer información del puerto serie. ¿Existe alguna diferencia en la eficiencia entre leer por byte y leer una cierta longitud a la vez?
Debe haber una diferencia, y la diferencia es bastante grande.
Debido a que la lectura es un programa en modo de usuario, y cada lectura corresponde a una llamada al sistema (cambiar del modo de usuario al modo de 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, entonces solo hay una llamada al sistema (dos cambios de estado).
Si lees un byte a la vez, necesitas leer 5. veces hay 5 llamadas al sistema (10 cambios de estado).
La diferencia específica depende del entorno real. Las pruebas requieren una gran cantidad de datos para ver.