首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ie内存释放

ie内存释放
EN

Stack Overflow用户
提问于 2012-06-23 11:18:31
回答 1查看 541关注 0票数 1

以下是在IE8中测试的代码:

代码语言:javascript
复制
var stack = [];
function test() {
    var i = 0;
    while(i++ < 100000) {
        stack[i] = {a: "some string"};
        delete stack[i];
    };
}
test();

这个脚本在IE中只占用很少的内存。Windows任务管理器显示29704K,但下一条:

代码语言:javascript
复制
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内存。我想知道为什么或者如何以其他方式释放内存。

感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-23 11:23:28

如果您只是在系统级别查看浏览器的总内存使用量,那么您可能会查看浏览器的最大内存使用量,而不是实际使用的内存量。仅仅因为您在浏览器中释放了一些空间,并不意味着浏览器会将这些内存返回给操作系统。该内存可能可供将来在浏览器中重用,但尚未返回给操作系统。

与第一个示例相比,第二个示例的峰值内存使用率更高,因为您在删除元素之前完全填充了数组。因此,如果由于更高的峰值使用而在系统级别显示更大的内存使用量,也就不足为奇了。这并不意味着更高的内存量仍在使用中,只是浏览器必须从系统请求更多的内存来处理更高的峰值使用率,并且浏览器不一定将现在未使用的内存返回给操作系统。这些内存将位于浏览器的空闲内存池中,可供将来的内存请求使用,因此不会发生内存泄漏。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11166540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档