From 4d4900fc65104604820c99faeaf439f958634451 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis <info@bnoordhuis.nl> Date: Mon, 31 Oct 2011 22:31:12 +0100 Subject: [PATCH] process: optimize process.nextTick() 33% performance boost on large nextTick queues. --- src/node.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/node.js b/src/node.js index 520ddae5e..a874bd55c 100644 --- a/src/node.js +++ b/src/node.js @@ -185,20 +185,18 @@ var l = nextTickQueue.length; if (l === 0) return; + var q = nextTickQueue; + nextTickQueue = []; + try { - for (var i = 0; i < l; i++) { - nextTickQueue[i](); - } + for (var i = 0; i < l; i++) q[i](); } catch (e) { - nextTickQueue.splice(0, i + 1); - if (i + 1 < l) { + if (nextTickQueue.length) { process._needTickCallback(); } throw e; // process.nextTick error, or 'error' event on first tick } - - nextTickQueue.splice(0, l); }; process.nextTick = function(callback) { -- 2.34.1