【发布时间】:2015-10-01 07:59:00
【问题描述】:
我在树莓派上运行一个 python 脚本,它不断检查Yocto 按钮,当它被按下时,它将来自不同传感器的数据放入数据库中。
不断运行的代码 sn-p 是:
#when all set and done run the program
Active = True
while Active:
if ResponseType == "b":
while Active:
try:
if GetButtonPressed(ResponseValue):
DoAllSensors()
time.sleep(5)
else:
time.sleep(0.5)
except KeyboardInterrupt:
Active = False
except Exception, e:
print str(e)
print "exeption raised continueing after 10seconds"
time.sleep(10)
GetButtonPressed(ResponseValue) 如下所示:
def GetButtonPressed(number):
global buttons
if ModuleCheck():
if buttons[number - 1].get_calibratedValue() < 300:
return True
else:
print "module not online"
return False
def ModuleCheck():
global moduleb
return moduleb.isOnline()
我不太确定可能出了什么问题。但大约需要一个小时,RPI 才会耗尽内存。
内存大小不断增加,每15分钟左右才按一次按钮。
这已经告诉我问题一定出在上面显示的代码中。
【问题讨论】:
-
使用 Python 内存分析,如 Heapy,确定泄漏内存的去向 smira.ru/wp-content/uploads/2011/08/heapy.html
-
泄漏是在 yocto 库中,所以我不得不创建一个解决方法来每隔一段时间重置它,以防止它崩溃,直到我得到不同的解决方案
-
我觉得这是报告错误的好日子:)
-
我做了,并且已经收到他们正在处理的回复!真是美好的一天
标签: python memory-leaks yocto