如果我的程序正在循环切换case的Dictionary类,是否会导致内存问题?纠正我的错误,当我调用dictionary(x)返回值时,python将填充整个新dictionary类对象?你知道吗
编辑: 我创建了这样一个函数,里面有更多的数据。你知道吗
def switch(tcpData):
return{
'functionA':fnA
'functionB':fnB
'functionC':fnC
}.get((tcpData.split(" "))[0].rstrip(), "Invalid")
下面是我简化的tcp服务器代码
...
...
client_sock, address = server.accept()
print 'Accepted connection from {}:{}'.format(address[0], address[1])
connected=True
while connected:
data = client_socket.recv(1024)
if not data:
connected=False
if "\r" in data:
print switch(data)
conn.sendall(switch(data)+"\n\r")
...
...
如前所述,无论何时调用switch函数,python都将填充整个新的dictionary类对象。 假设我的交换字典包含很多数据,我以10Hz或20Hz的速率接收tcp数据,过一段时间它会消耗掉所有的RAM内存吗?你知道吗
是的,例如,如果您离开然后重新进入该范围,字典将被重新创建
注意,
responses
的id
一直在变化,这说明每次都创建了一个新对象相关问题 更多 >
编程相关推荐