diff options
author | Feross Aboukhadijeh <feross@feross.org> | 2016-03-29 06:00:58 +0300 |
---|---|---|
committer | Feross Aboukhadijeh <feross@feross.org> | 2016-03-29 06:00:58 +0300 |
commit | 1973007f7fa336774d20d7a0578894832c25d00b (patch) | |
tree | 9ec3c25be3099f27c5923c445709f87b7fe91f69 /lib | |
parent | b6ac41ae3b55153ad8faedfee53c421ae2a75d53 (diff) |
Replace expensive arr.splice() with unordered-array-remove in hot code
For https://github.com/feross/webtorrent-desktop/issues/256
Diffstat (limited to 'lib')
-rw-r--r-- | lib/peer.js | 4 | ||||
-rw-r--r-- | lib/server.js | 4 | ||||
-rw-r--r-- | lib/tcp-pool.js | 3 |
3 files changed, 6 insertions, 5 deletions
diff --git a/lib/peer.js b/lib/peer.js index cfa0cc5..aafbabe 100644 --- a/lib/peer.js +++ b/lib/peer.js @@ -1,3 +1,4 @@ +var arrayRemove = require('unordered-array-remove') var debug = require('debug')('webtorrent:peer') var Wire = require('bittorrent-protocol') @@ -240,8 +241,7 @@ Peer.prototype.destroy = function (err) { self.wire = null if (swarm && wire) { - var index = swarm.wires.indexOf(wire) - if (index >= 0) swarm.wires.splice(index, 1) + arrayRemove(swarm.wires, swarm.wires.indexOf(wire)) } if (conn) { conn.on('error', noop) diff --git a/lib/server.js b/lib/server.js index 2cefdac..27a645e 100644 --- a/lib/server.js +++ b/lib/server.js @@ -1,5 +1,6 @@ module.exports = Server +var arrayRemove = require('unordered-array-remove') var debug = require('debug')('webtorrent:server') var http = require('http') var mime = require('mime') @@ -17,8 +18,7 @@ function Server (torrent, opts) { socket.setTimeout(36000000) sockets.push(socket) socket.on('close', function () { - var index = sockets.indexOf(socket) - if (index >= 0) sockets.splice(index, 1) + arrayRemove(sockets, sockets.indexOf(socket)) }) }) diff --git a/lib/tcp-pool.js b/lib/tcp-pool.js index 02148e3..bf75ebe 100644 --- a/lib/tcp-pool.js +++ b/lib/tcp-pool.js @@ -1,5 +1,6 @@ module.exports = TCPPool +var arrayRemove = require('unordered-array-remove') var debug = require('debug')('webtorrent:tcp-pool') var net = require('net') // browser exclude @@ -198,7 +199,7 @@ TCPPool.prototype._onConnection = function (conn) { conn.once('close', removePendingConn) function removePendingConn () { - self.pendingConns.splice(self.pendingConns.indexOf(conn)) + arrayRemove(self.pendingConns, self.pendingConns.indexOf(conn)) } var peer = Peer.createTCPIncomingPeer(conn) |