如何真正删除array中的元素,a以及rray引起的内存问题
meizhini
2008-06-29
一个js中的array引起内存爆炸.
这个情况是在ajax模式下引起的.客户端不断从服务器中读数据写入到array中.如果array的长度大于了120,就把array的前面的 10个移出array,开始的时候表现没有问题,2~3个小时之后,显示出来的曲线出现素乱,这个说明array出问题了,查看IE使用的内存已经到了 140M,cpu高达20%. 请问如何解决,做到真正删除数组中的元素,以及垃圾回收. 下面给出代码中的一部分: var i = 0; for ( i; i < cur_rm.scale.mv_count ; i++ )//&& i < len; i++ ) { cur_rm.cur_arr.origin[ 0 ].hd = null; cur_rm.cur_arr.origin[ 0 ].x = null; cur_rm.cur_arr.origin[ 0 ].y = null; cur_rm.cur_arr.origin[ 0 ] = null; cur_rm.cur_arr.origin = cur_rm.cur_arr.origin.del( 0 ) /* var o = cur_rm.cur_arr.origin.shift(); delete o; o = null; */ CollectGarbage(); cur_rm.cur_arr.zoom[ 0 ].hd = null; cur_rm.cur_arr.zoom[ 0 ].x = null; cur_rm.cur_arr.zoom[ 0 ].y = null; cur_rm.cur_arr.zoom[ 0 ] = null; cur_rm.cur_arr.zoom = cur_rm.cur_arr.zoom.del( 0 ) /* var z = cur_rm.cur_arr.zoom.shift(); delete z; z = null; */ CollectGarbage(); } 其中另一种方法是被注释掉的方法,也是不行的. 回答提问也可以到 http://www.iteye.com/problems/1065 有一点一点奖金哦.本人在javaeye上的资金就是30,所以只好选择最少的悬赏了.不好意思啦.唯一办法,多写博客日志,多写点工作的心得,多写点对他人有用的东西来回报这个世界了--呵呵.至于高手你嘛,只好给你投去一点崇拜目光了,以作恭维. |