Fop*_*tin 3 javascript node.js
我正在寻找一种明确的方法来确保JavaScript垃圾收集器很快就能完成它的工作.
那么设置变量undefined是一种保证吗?
var foo = "something";
// do stuff with foo
foo = undefined;
// awake the Garbage Collector interest to him
Run Code Online (Sandbox Code Playgroud)
理论上不,它不会被收集.内存中仍然存在对此变量的引用.它包含未定义值的事实是无关紧要的.
想象一下RAM就像一个巨大的盒子存储器.这些盒子由不同的公司(UPS,FedEX等)共享.每个盒子都有一个地址,每个公司告诉一些中央应用程序"嘿,这个地址的盒子正被我使用".因此,即使你清空或取消定义盒子,我们说UPS和那个盒子之间仍然存在1:1的连接.就像你的JS解释器告诉你的操作系统一样("嘿,我正在使用xxx的内存位置,不要把它分配给任何其他人").
它包含未定义值的事实不会释放此内存位置.您的操作系统不知道也不关心该内存位置中的内容,他知道它已分配给您的JS解释器,并且您的JS解释器将其链接到您的变量foo.
不管怎样,你不应该为JS中的垃圾收集烦恼.只要你在正确的地方创建你的变量并且不会泛滥全局对象(但即便如此我怀疑你会遇到很多问题)每个变量都会在不能自动收集时自动进行垃圾收集.用过的.
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |