使用node開發,值得注意的點

2021-09-30 20:49:41 字數 1765 閱讀 4837

例子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 中是支援的,但是如...