Estoy intentando comunicarme con un dispositivo en serie utilizando Pyserial. Como los comandos deben enviarse continuamente, deben colocarse en un ciclo while en Python.Pitón eficiente y rápido While while while sleep()
actualmente estoy usando el código, y han echado un vistazo a python process takes 100% CPU: trabaja
while True:
#do some serial sending here
time.sleep(0.2)
Este código. Sin embargo, la velocidad de envío es lenta. Traté de hacerlo más rápido disminuyendo el intervalo sleep
, pero parece cargar demasiado la CPU.
En resumen, ¿hay alguna manera de iterar con eficacia durante un ciclo while para siempre, mientras se mantiene un bajo consumo de recursos de CPU?
basado en esta [publicación] (http://stackoverflow.com/questions/529034/python-pass-or-sleep-for-long-running-processes), time.sleep tiene muy poca sobrecarga, es posible que desee para verificar el número de serie que envía el código – xvatar
¿Ha intentado dormir por 0.00001? Puede parecer ridículo, pero ese retraso puede hacer toda la diferencia en el mundo para tu CPU. Por favor pruebalo. – jakebird451
¿Cómo puede una computadora moderna romper el sudor escribiendo en un puerto serie? ¿No se bloquearía serial.Serial(). Write() al escribir? ¿Eso parece tiempo suficiente para que la CPU haga otras cosas? – Bittrance