首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyserial轮询内存

Pyserial轮询内存
EN

Stack Overflow用户
提问于 2012-03-14 03:57:03
回答 1查看 442关注 0票数 0
代码语言:javascript
复制
import serial

ser = serial.Serial('COM5', baudrate=9600, parity=serial.PARITY_NONE, timeout=1)
print "connected to: " + ser.portstr
while ser.isOpen():
    line = ser.readline().strip()
    if len(line)==16:
        print "Id number is",line[5:-2]

ser.close()

我正在使用Pyserial连接到身份证阅读器,并希望有连续的轮询。如果我打印所有内容,我注意到每次超时都会导致readline存储一个空字符串。上面的代码改善了丑陋/无限输出的问题,但我担心内存使用。由于我重用了"line",我认为这没有问题,但是无限轮询是不是一开始就有问题呢?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-14 06:54:40

它看起来很好-您不应该在该循环中浪费内存,因为它不会保留对过去行的引用。

对进程进行监视,看看内存消耗是否在一两天内增长,这不会对您造成伤害--但我不会担心。

假设您在一台具有512MB RAM的旧机器上运行此程序,只剩下200MB用于Python进程- readline的超时时间为一秒,每个空字符串对象占用内存中的64字节-您将在大约37天内耗尽RAM。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9691129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档