我的理解是,在unix中,当释放内存时,内存不会返回到操作系统,它会继续在下一次调用malloc时再次使用.
在Windows上,我知道内存实际上会返回到操作系统.
这两种做事方式之间有什么大的区别,还是两种不同的方式做同样的事情?如果这两种方法有任何利弊,那么它们是什么?
编辑: 谢谢你的澄清.我一直认为这是一个操作系统的东西(因为在类UNIX系统中,进程似乎永远不会减小,但在Windows中也是如此).
这不是作为错误报告的目的——即使这些泄漏可能是 mpl 错误的结果,请解释问题要求寻求解决方法。
问题很简单:绘制大量数据(使用 plot() 或 scatter()),清除/释放所有内容,垃圾收集,但仍然没有释放几乎所有内存。
Line # Mem usage Increment Line Contents
================================================
391 122.312 MiB 0.000 MiB @profile
392 def plot_network_scatterplot(t_sim_stop, spikes_mat, n_cells_per_area, n_cells, basedir_output, condition_idx):
393
394 # make network scatterplot
395 122.312 MiB 0.000 MiB w, h = plt.figaspect(.1/(t_sim_stop/1E3))
396 122.324 MiB 0.012 MiB fig = mpl.figure.Figure(figsize=(10*w, 10*h))
397 122.328 MiB 0.004 MiB canvas = FigureCanvas(fig)
398 122.879 MiB 0.551 MiB ax = fig.add_axes([.01, .1, .98, .8])
399 134.879 MiB 12.000 MiB edgecolor_vec = np.array([(1., …Run Code Online (Sandbox Code Playgroud)