2013
Nov
07

Javascript 使用 Memory ,跟 c++ , php 等等比起来,用量可是大的吓人,所以要好好的管理 Memory ,不用的时候,就得透过 Browser GC 机制去清除,

最简单的两个清除 Memory 的方式如下:

  • obj = null;
  • delete obj[property];

接下来就来测试看看,可以用 Chrome 并打开 Chrome 内容的 Task Manager 来检查 Memory。

宣告 Object 来测试

先宣告一个 Object ,并 new 10000 次
  1. function oo() {
  2. this.b = {"s": 5};
  3.  
  4. this.largeDataArray = new Array(10000);
  5. }
  6.  
  7. var obj = [];
  8.  
  9. for (i = 0 ; i < 10000; i++) {
  10. obj.push(new oo());
  11. }

用 Chrome 来测试,可以看到总共用到 450 MB 。

释放 Memory 方式一 Null

释放 Memory 方式一
  1. obj = null;

释放后 Memory 只用 45 MB。

释放 Memory 方式二 Delete

释放 Memory 方式二
  1. for (pro in obj) {
  2. delete obj[pro];
  3. }

释放后 Memory 只用 45 MB。

注意事项

delete obj 是没有用, delete 必须要指定 obj 的 property 才有用, 可以用 console.log(obj) 去检查这个 object 是否还存在。


回應 (Leave a comment)