私は OPC クライアントを書いているので、Python OpenOPC ライブラリを使用しています。
問題は、OPC アイテムのリストを読み取るたびに、アプリがメモリを消費することです。
たとえば、次のコードは各反復で約 100ko を消費します。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import OpenOPC
import time
import gc
gc.set_debug(gc.DEBUG_LEAK)
client = OpenOPC.client()
while True:
client.connect('CODESYS.OPC.DA')
dataList = client.list("PLC2.Application.GVL.*")
res = client.read(dataList)
client.close()
print gc.collect()
print gc.garbage
time.sleep(2)
ガベージ コレクタは次の値を返します。
0
[]
アプリを閉じるとメモリが解放されます。
そのため、アプリでメモリ リークが発生する理由と、これを回避する方法がわかりません。
アイデアはありますか?ありがとう