例子1:for-in 和 普通的for的使用比較
function makedata()
return map;
}function startup()
console.timeend('test1');
var map2 = makedata();
console.time('test2');
for(var i = 0,len=map2.length;inode test.js
test1: 168.274ms
test2: 2.106ms
例子2:delete物件的屬性
function point(x, y)
function makedata()
return map;
}function startup()
function makedata()
return map;
}function startup()
for(var i = 1000000; i<2000000; i++)
return map;
}function makedata2()
for(var i = 1000000; i<2000000; i++)
return map;
}function startup()
startup();
執行:>node test.js
test1: 44.239ms
test2: 39.788ms
執行了幾次,這個執行時間相差不是很大
總結如下:例子5:
function startup()
console.timeend('test1');
var a2 = new array();
a2[0] = 0;
console.time('test2');
for (var b = 0; b < 10000000; b++)
console.timeend('test2');
}startup();
執行如下:
>node test.js
test1: 19.308ms
test2: 14.554ms
物件屬性的順序:始終以相同的順序例項化物件屬性,以便共享的隱藏類和隨後優化的**可以共享之。
動態屬性:在例項化之後向物件新增屬性將強制執行隱藏的類更改,並降低之前隱藏類所優化的所有方法的執行速度。相反,在其建構函式中分配所有物件的屬性。
方法:重複執行相同方法的**將比僅執行一次的多個不同方法(由於內聯快取)的**執行得更快。
陣列:避免稀疏陣列,其中鍵值不是自增的數字。並沒有儲存所有元素的稀疏陣列是雜湊表。這種陣列中的元素訪問開銷較高。另外,盡量避免預分配大陣列。最好是按需增長。不要刪除陣列中的元素。這會使鍵值變得稀疏。請勿在數字陣列中存放非數字的值(物件)
標記值:v8 使用 32 位表示物件和數值。由於數值是 31 位的,它使用了一位來區分它是乙個物件(flag = 1)還是乙個稱為 smi(small integer)整數(flag = 0)。那麼,如果乙個數值大於 31 位,v8會將該數字裝箱,把它變成乙個雙精度數,並建立乙個新的物件來存放該數字。盡可能使用 31 位有符號數字,以避免對 js 物件的高開銷的裝箱操作。
Git 命令值得注意的幾個點
大多數人對 git 的常用命令都有一定的了解,這裡羅列一些具體案例說明需要使用哪些命令。git clone防止每次 push 的時候輸入賬號密碼,所以需要儲存帳號密碼 開啟d work wdemo basiclibrary git config檔案 注意 windows 下 git 資料夾預設是隱藏...
值得注意的函式
函式 嚴重性 解決方案 gets 最危險 使用 fgets buf,size,stdin 這幾乎總是乙個大問題!strcpy 很危險 改為使用 strncpy。strcat 很危險 改為使用 strncat。sprintf 很危險 改為使用 snprintf,或者使用精度說明符。scanf 很危險 ...
UE C 值得注意的坑
申明了forceinline關鍵字的內聯函式,不能和void一起使用。不然就會報錯。虛幻引擎中,基本資料型別包括,uint8 uint16 uint32 uint64 int8 int16 int32 int64 float。但是在藍圖中只支援uint8和int32。其他型別在c 中是支援的,但是如...