Python basemap中可能存在内存泄漏
考虑以下Python程序:Python basemap中可能存在内存泄漏,python,memory-leaks,matplotlib-basemap,Python,Memory Leaks,Matplotlib Basemap,考虑以下Python程序: import sys from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt import numpy as np from matplotlib.backends.backend_pdf import PdfPages for i in range(1): pp=PdfPages('test.pdf') pindex=0 pages=10 ro
import sys
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
for i in range(1):
pp=PdfPages('test.pdf')
pindex=0
pages=10
rows=6
cols=3
for p in range(pages): # for each page
fig=plt.figure(figsize=[8.5, 11]) # letter size
plt.axis('off')
for r in range(rows): # for each row
for c in range(cols): # for each column
fig.add_subplot(rows, cols, 1+c+r*cols)
map=Basemap(projection='cyl', resolution='c')
map.drawcoastlines(linewidth=.25)
map.drawparallels(np.arange(-90, 90, 30), linewidth=.25)
map.drawmeridians(np.arange(-180, 180, 30), linewidth=.25)
pp.savefig()
pindex=pindex+1
pp.close()
print 'done'
sys.stdin.readline()
这个简单的程序所做的是创建一个包含10页的PDF文件,每一页都有一组地图图(6x3)。当我运行这个程序时,当程序打印“完成”时,内存使用量达到了几GB,即使实际生成的文件只是其中的一小部分。在注释掉对drawparallels和drawmeridians的调用时,内存使用率要低得多。相反,如果我将主循环的范围从1更改为5(基本上重复创建同一文件5次),那么内存使用量将达到数十GB,在我看来,这显然表明存在某种内存泄漏。是这样吗?如果是这样的话,有没有办法绕过它(除了没有子午线和平行线)
谢谢 这应该作为一个可能的bug在github上报告,而不是在stackexchange上。