Continuation of Python Memory Leak Using binascii, zlib, struct, and numpy but with example code that correctly illustrates the issue I have.
import struct
import zlib
import binascii
import numpy as np
import os
import psutil
import gc
l = list()
l.append('eJztwYEAAAAAw6D5U1/gCFUB' + 'A'*161 + 'McA6vIAAQ==')
l.append('eJztwYEAAAAAw6D5U1/hAFUB' + 'A'*3957 + 'HwGw6IAAQ==')
l.append('eJztwYEAAAAAw6D5U1/hAFUB' + 'A'*3957 + 'LwGw6QAAQ==')
process = psutil.Process(os.getpid())
for s in l:
print (process.get_memory_info()[0] / float(2 ** 20))
byte_array = zlib.decompress(binascii.a2b_base64(s))
array = np.array(struct.unpack('%dB' % (len(byte_array)), byte_array))
del byte_array
del array
gc.collect()
print (process.get_memory_info()[0] / float(2 ** 20))
del l
del s
gc.collect()
print (process.get_memory_info()[0] / float(2 ** 20))
It prints:
22.37109375
25.83203125
25.83203125
95.65625
95.65625
166.69140625
166.69140625
Why does the memory used continue to increase? Why is so much memory used at the end of the script even after the variables are deleted? Thank you.