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)