这是我有事情设置:在javascript中处理大型数组时,什么是释放浏览器内存的最佳方式?
- container.html
- database1.js(包含大阵叫数据库1)
- database2.js(包含大阵叫DATABASE2)
下面是一个数组的样本(从6000+行缩短到2):
var database1=[[
"2010-01-03 07:45","2010-01-03 11:00","534","A","","","","","Installed washing machine","0","1","1","Indeed","",""],[
"2010-03-20 15:00","2010-03-20 16:00","571","F","","","","","Installed oven","0","5","1","Indeed","",""],[
etc,etc,etc...]];
当我将database1.js添加到容器的头部时,Windows中用于IE的内存从7,7MB跳转到21,9MB。这很好,现在我可以通过称为database1的数组(即第一行和第一列位于database1 [0] [0])循环。
问题是我需要不时重新附加数据库文件,这样做会增加内存使用量(我认为数据库数组会被覆盖)。
所以第一再追加在IE推存储器使用率高达30,4MB但随后继续增加每个再追加:30,4MB> 33,9MB> 39,5MB> 42,1MB等
为了防止发生这种情况,我现在清除数组中的每个项目,然后重新添加database1文件。
for (var i=0, il=database1.length; i<il; i++){
delete database1[i];
}
//append database1.js to head code here
这确实有助于。内存使用量不会减少到最初的7,7MB,但是却从21,9MB减少到了14,1MB。下一次重新追加将内存增加到25.9MB(循环清除:18,8MB)。下一个重新追加将内存增加到29.3MB(清除循环:24,5MB)。
我很高兴内存使用量没有像以前那样快速攀升,但是这可能会进一步优化吗?不幸的是重新加载HTML页面不是一个选项。
(您的计算器帐户现在应该被修复) – 2010-06-20 20:19:34