我在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())
Run Code Online (Sandbox Code Playgroud)
我认为问题可能是我一直在实例化一个新的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())
Run Code Online (Sandbox Code Playgroud)
如果有人能够对此有所了解,或者我只是愚蠢而有人可以指出为什么我会非常感激.谢谢