一直很疑惑,delete到底能不能用来释放内存?今天看到如下一段代码,执行后发现脚本脚本执行很慢(后发现原来是alert搞的鬼)
function test()
{
var str = "1"
for (var i = 0; i<25; i++)
{
str += str;
}
alert(str);
delete str;
}
关键是delete删除变量之外并没有看出释放内存的迹象(在页面执行到关闭前,内存使用量都比较稳定,页面关闭后才猛地释放大量内存),这验证了"delete从对象中删除一个属性,或从数组中删除一个元素。"(script56) 后google出一个javascript的未公开函数CollectGarbage() (According to MSDN, CollectGarbage is an undocumented function of the language and it is used for testing only. However this is the only way to force the garbage collection in Javascript, setting a variable to null or deleting it will not destroy the resource until the browser engine is destroyed. ) 效果仍不明显.
博主疑惑JavaScript中delete能否释放内存,通过一段代码进行测试。代码中定义函数,在循环里拼接字符串,执行alert后使用delete删除变量,不过后来发现脚本执行慢是alert导致。
1333

被折叠的 条评论
为什么被折叠?



