Я запускаю скрипт python на малине pi, который постоянно проверяет кнопку Yocto
, и когда он нажимается, он помещает данные из другого датчика в базу данных.Утечка памяти Python с использованием Yocto
фрагмент кода, что работает постоянно находится:
#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, как бесформенный, чтобы определить, где утечка памяти идет http://smira.ru/wp-content/uploads/2011/08/heapy.html –
Утечка была в Yocto библиотеке поэтому мне пришлось создать обходной путь, чтобы каждый раз его перезагружать, чтобы предотвратить его сбой, пока я не получаю другое решение. – Mickboe1
Я чувствую, что это хороший день для сообщения об ошибках :) –