我很难弄清楚如何解决内存泄漏问题。我认为这可能是 pywin32 的问题,但我不完全确定。
我用于读取/写入单个项目的代码似乎工作得很好,但是当使用组函数时,它会慢慢泄漏内存。我怀疑这是来自必须在 server_handles 中传递的基于 1 的数组。
有谁知道解决方法吗?
def read_group(self, group, mode=OPC_SYNC, source=OPC_DS_CACHE):
""" Read a group returning a list of Result tuples or None. """
if group not in self.groups:
raise OPCError("Group does not exist, add first.")
items = []
server_handles = []
for name, item in self.items.items():
if item.group == group:
items.append(name)
server_handles.append(item.server_handle)
if not server_handles:
return None
# Note that arrays are 1 based so must add an element to beginning
server_handles.insert(0, 0)
if mode == OPC_SYNC:
val, err, qual, ts = self.groups[group].SyncRead(
Source=source,
NumItems=len(server_handles) - 1,
ServerHandles=server_handles)
# Map the return arrays into a list of result tuples
result = []
for i in range(len(items)):
result.append(Result(
items[i],
val[i],
OPC_QUALITY[qual[i]],
str(ts[i]),
err[i],
))
return result
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)