function f(){
let n = 0
console.time('f')
for (let i = 0; i < 1000000000; i++) {
n += 1
}
console.timeEnd('f')
}
function g(){
let n = 0
console.time('g')
try {
for (let i = 0; i < 1000000000; i++) {
try {
n += 1
}catch(e) {}
}
}catch(e){}
console.timeEnd('g')
}
f();g();
輸出結果爲什麼try catch塊比正常快於V7的NodeJS
➜ static node -v
v7.9.0
➜ static node test.js
f: 11293.079ms
g: 5800.848ms
➜ static sudo n 6.9.5
➜ static node -v
v6.9.5
➜ static node test.js
f: 9922.718ms
g: 12212.024ms
➜ static
爲什麼try catch塊的速度比正常2倍
是,這意味着我們應該都嘗試工作?
想盡辦法獲得更多的性能
希望得到的答案
thankx所有
意味着我可以嘗試everyt興奮得到優化? – Shinhwe
這隻會回答問題的一部分。根據OP的說法,似乎沒有try/catch結構的代碼執行起來比用try/catch包裝時要慢。 –
使用try-catch或try-finally不會*導致優化發生。就是在以前的V8版本中,包含這些塊的函數從未被V8編譯器/優化器優化。現在使用節點v7.x中的V8版本,編譯器/優化器*可以*和*將優化包含這些塊的函數。 – mscdex