用于垃圾收集的Javascript数组删除
Javascript array deletion for garbage collection
我有一个javascript对象数组,每个对象都用"new"创建。如果出现错误,我想清除整个数组,以便JS引擎对其进行GC处理。为此,只需将数组变量设置为"null"就足够了吗?还是需要拼接数组中的所有元素并将其设置为null,然后再将数组变量设为"null"?
我之所以这么问,是因为在Firefox中,我在将数组分配为null之前显示了(console.log)数组,而当我稍后检查时,显示的对象(通常在稍后的显示中更新)仍然显示数组的元素,因此我怀疑这些元素是否真的是空闲的。
要清除数组,只需将长度设置为零:
var arr = [1,2,3,4,5];
console.log(arr);
arr.length=0;
console.log(arr);
结果:
[1, 2, 3, 4, 5]
[]
编辑:刚刚在主题中找到了这个:http://davidwalsh.name/empty-array
从评论中可以看出,将变量设置为新数组似乎是最简单的方法:
arr = [];
根据测试结果,内存GC比将长度设置为0更快。我想这与触发GC的分配有关。
这里有一个关于各种方法的有趣的性能测试:http://jsperf.com/array-destroy
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)