为什么在功能完成后内存不会被释放?

时间:2016-03-30 22:46:46

标签: python-3.x numpy memory-leaks

当我执行下面的程序时,内存增加得非常快,所以我想在名为" secundary_function"的函数中使用了内存。没有解放。如果我复制元素,我会将问题附加到列表中,或者如果我不使用$('button.buttonA').click(function(){ var cursorPos = $('textarea.formInsideMenu').prop('selectionStart'); var textCurrent = $('textarea.formInsideMenu').val(); var textBefore = textCurrent.substring(0, cursorPos); var textAfter = textCurrent.substring(cursorPos, textCurrent.length); $('textarea.formInsideMenu').val(textBefore + 'a' + textAfter); var elem = document.getElementsByClassName("formInsideMenu")[0]; elem.setSelectionRange(cursorPos, cursorPos + 1); }); ,问题就会消失。我想了解为什么副本在这里是必要的以及为什么secundary_function会对使用的内存产生影响..

secundary_function

感谢您的回答,对不起我的英语!

1 个答案:

答案 0 :(得分:2)

在这一行:

liste_images.append(images[0])

images[0]创建3000x25x25 images数组的视图。这意味着您附加到images[0]的{​​{1}}的结果会引用整个3000x25x25数组。这个大数组不会被垃圾收集。当你复制时,你创建一个新的25x25数组,并且可以在for循环的下一次迭代中释放大数组。