Форум сайта python.su
# -*- coding: utf-8 -*-
import signal
import sys
import OpenOPC
# заверашение по Ctrl+C
def signal_handler(signal, frame):
print 'You pressed Ctrl+C.'
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
while True :
o = OpenOPC.client()
o.connect('Graybox.Simulator')
o.read('numeric.random.uint16')
o.close()
Офлайн
А вы уверены что это утечки? OPC кеширует получаемые данные на стороне клиента. Насколько долго вы наблюдали за процессом поедания памяти? Создание клиента в цикле выглядит неправильно.
Я бы выход сделал несколько иначе
try:
while 1:
print "aa"
except KeyboardInterrupt:
print "exit"
Отредактировано (Май 29, 2011 07:45:05)
Офлайн
Спасибо за подсказку с исключением.
Размер питоновской программы в памяти (WM размер) постепенно увеличивается с 10 мб до 300 мб, дальше не пробовал.
Похоже придётся каждые полчаса перезагружать питоновский процесс.
Офлайн