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 次
- function oo() {
- this.b = {"s": 5};
- this.largeDataArray = new Array(10000);
- }
- var obj = [];
- for (i = 0 ; i < 10000; i++) {
- obj.push(new oo());
- }
用 Chrome 來測試,可以看到總共用到 450 MB 。
釋放 Memory 方式一 Null
釋放 Memory 方式一
- obj = null;
釋放後 Memory 只用 45 MB。
釋放 Memory 方式二 Delete
釋放 Memory 方式二
- for (pro in obj) {
- delete obj[pro];
- }
釋放後 Memory 只用 45 MB。
注意事項
delete obj 是沒有用, delete 必須要指定 obj 的 property 才有用, 可以用 console.log(obj) 去檢查這個 object 是否還存在。