I am attempting to communicate with a device over serial using Pyserial. As commands need to be continually sent, they have to be placed in a while loop in Python.
You have to figure out the tradeoff you are willing to have between speed and CPU load.
If you have to send short bursts of data, while not doing so much between messages, then maybe you can live with high CPU load for a short time as the average might still be low.