我在 python 脚本中有一个(明显的)内存泄漏,我无法完全解释(常驻内存不断增长)。它从大约 6MB 的驻留开始,我让它运行了一夜,它已经超过了 200MB(我这样做是为了排除由于 gc 导致的锯齿状内存使用模式)。我把它浓缩成这个脚本:
import sys
import time
import paramiko
def update():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect(hostname='localhost')
finally:
ssh.close()
def main():
while(True):
update()
time.sleep(0.001)
if __name__ == '__main__':
sys.exit(main())
我认为问题可能是我不断实例化一个新的 SSHClient 并且它们并没有被抛出,但是这个版本更快地泄漏内存!
import sys
import time
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
def update():
global ssh
try:
ssh.connect(hostname='localhost')
finally:
ssh.close()
def main():
while(True):
update()
time.sleep(0.001)
if __name__ == '__main__':
sys.exit(main())
如果有人可以对此有所了解,或者如果我只是愚蠢并且有人可以指出为什么我会非常感激。谢谢