为永久循环添加小延迟以减少 cpu 使用 python
adding small delay to forever loop to reduce cpu usage python
我有一个永远运行的循环,从 gps 读取串行数据。如果我在每次迭代中添加一个小的延迟是否有助于减少 cpu 负载。如果没有更好的方法来减少 cpu 负载。
while True:
byteLine = serialport.readline()
strLine = byteLine.decode("utf-8")
splitLine = strLine.split()
sleep(0.2)
不需要添加延迟。如果您的串行端口代码编写正确,它将在 cpu 上以最小负载在 readline() 期间暂停,直到新行可用。这是正确的行为——等待新的数据块,处理它,然后立即再次开始等待。尝试一下,看看 CPU 负载有多高(您可以在不同的终端中使用 top
。)。
如果你想进一步减少cpu的使用,你应该向GPS芯片发送指令以减少update frequency(增加它在串行线上发送的每次更新之间的间隔) .但是在主循环中添加延迟不会显着减少 CPU 负载,并且有可能落后于 GPS 更新。
我有一个永远运行的循环,从 gps 读取串行数据。如果我在每次迭代中添加一个小的延迟是否有助于减少 cpu 负载。如果没有更好的方法来减少 cpu 负载。
while True:
byteLine = serialport.readline()
strLine = byteLine.decode("utf-8")
splitLine = strLine.split()
sleep(0.2)
不需要添加延迟。如果您的串行端口代码编写正确,它将在 cpu 上以最小负载在 readline() 期间暂停,直到新行可用。这是正确的行为——等待新的数据块,处理它,然后立即再次开始等待。尝试一下,看看 CPU 负载有多高(您可以在不同的终端中使用 top
。)。
如果你想进一步减少cpu的使用,你应该向GPS芯片发送指令以减少update frequency(增加它在串行线上发送的每次更新之间的间隔) .但是在主循环中添加延迟不会显着减少 CPU 负载,并且有可能落后于 GPS 更新。