读书人

关于在JS里剔除变量 销毁所占内存 的讨

发布时间: 2012-10-09 10:21:45 作者: rapoo

关于在JS里删除变量 销毁所占内存 的讨论
如: for (var i = 0; i < waveDataLength; i++) { array = waveData[i].split(","); point = 1 / array.length; for (var j = 0; j < array.length; j++) { num = i + Math.round((point * j) * 10) / 10; item = parseFloat(array[j]); dataArray.push([num, item]); num = null;item=null; } array = null; item = null; point = null; }
这一块array如果不设置为NUll的时候,他会一直创建一个新的地址引用、
我觉得你还是没了解他的意思,进入下一个循环的时候,array引用被重新赋值,以前的数组没了引用,就会被GC(没出作用域也一样),设不设null没什么区别,你可以写个循环测试下时间。
引用这一块array如果不设置为NUll的时候,他会一直创建一个新的地址引用
可以把array声明在循环外部,这样就一直是同一个引用。只是每次指向的是不同的对象了。
PS:js是函数级作用域,最好是把所有变量在函数开始就声明。
欢迎拍砖我的坦克游戏:http://www.iteye.com/topic/783537


支持楼主这个理解,把变量定有放在循环外面,搞定

呵呵 本来就是这样做的、、 25 楼 aimicheng 2011-04-18 LZ患有内存泄漏焦虑症,鉴定完毕! 26 楼 奥义之舞 2011-04-18 aimicheng 写道LZ患有内存泄漏焦虑症,鉴定完毕!
被逼的 beat it 27 楼 zxl10059 2011-04-18 完全是画蛇添足,先去看完js的垃圾回收装置,变量作用域,内存的关系再来说
还有一些列子,完全是扯淡

读书人网 >JavaScript

热点推荐