我正在使用canvas进行图像处理。
用户每次会选择10张照片(通常是高分辨率照片),然后脚本会在上传到服务器之前对这些照片进行处理。
这个过程将创建大型数组并消耗大量内存。因此,我想知道以下选项中哪一种是释放内存的正确方法。
选项1: 不做任何操作,让GC处理内存使用情况。
for(int i=0;i<10;i++) {
var bigArray = new Array(20000000);
//do something with bigArray
}
选项2:设置为null
for(int i=0;i<10;i++) {
var bigArray = new Array(20000000);
//do something with bigArray
bigArray=null;
}
选项3:在释放数组内容后将其设置为null
for(int i=0;i<10;i++) {
var bigArray=new Array(20000000);
//do something with bigArray
bigArray=[];
bigArray=null;
}
选项4:在将数组长度设置为零后设置为空。
for(int i=0;i<10;i++) {
var bigArray=new Array(20000000);
//do something with bigArray
bigArray.length=0;
bigArray=null;
}