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();
Ausgabeergebniswarum versuchen schnelle catch-Block als normal in NodeJS v7
➜ 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
warum catch-Block schneller versuchen als normal 2x
ist das bedeutet, wir sollten alle versuchen, arbeiten?
versuchen alles mehr Leistung zu erhalten
hoffen, dass die Antwort
thankx alle
bedeutet, dass i everyt versuchen Hing optimiert werden? – Shinhwe
Das beantwortet nur einen Teil der Frage. Laut OP scheint Code ohne try/catch-Konstrukte langsamer ausgeführt zu werden, als wenn er in try/catch eingebunden wird. –
Die Verwendung von try-catch oder try-finally verursacht * keine Optimierung. In früheren Versionen von V8 wurden Funktionen, die diese Blöcke enthielten, vom Compiler/Optimierer von V8 * nie * optimiert. Jetzt kann der Compiler/Optimierer * mit der Version von V8 in Knoten v7.x Funktionen optimieren, die solche Blöcke enthalten. – mscdex