【发布时间】:2012-06-25 08:42:42
【问题描述】:
这是在 IE8 中测试的代码:
var stack = [];
function test() {
var i = 0;
while(i++ < 100000) {
stack[i] = {a: "some string"};
delete stack[i];
};
}
test();
这个脚本在 IE 中只占用一点内存。 Windows任务管理器显示29704K,但是下一个:
var stack = [];
function test() {
var i = 0;
while(i++ < 100000) {
stack[i] = {a: "some string"};
};
i = 0;
while(i++ < 100000) {
delete stack[i];
}
}
test();
它使用 54860K 内存。我徘徊为什么或如何以其他方式释放内存。
感谢您的帮助。
【问题讨论】:
-
您如何测量内存使用情况?您的意思是在调用
test()之后,可用的可用内存减少了您显示的数字 - 内存泄漏?还是在函数运行时使用了该内存,但之后又再次可用?请注意,delete将删除该属性,但这并不意味着该属性用于引用的对象将立即被垃圾回收。 -
这两个示例在两个页面中运行,该页面中没有其他内容。他们运行几分钟后我得到了记忆。
标签: javascript internet-explorer memory