0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00

buffer: little improve for Buffer.concat method

When buffer list less than 2, no need to calculate the length.
The change's benchmark result is here:
https://gist.github.com/JacksonTian/2c9e2bdec00018e010e6
It improve 15% ~ 25% speed when list only have one buffer,
to other cases no effect.

PR-URL: https://github.com/iojs/io.js/pull/1437
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
This commit is contained in:
Jackson Tian 2015-04-16 11:29:02 +08:00 committed by Brendan Ashworth
parent bb254b533b
commit 3d3083b91f

View File

@ -247,6 +247,11 @@ Buffer.concat = function(list, length) {
if (!Array.isArray(list))
throw new TypeError('list argument must be an Array of Buffers.');
if (list.length === 0)
return new Buffer(0);
else if (list.length === 1)
return list[0];
if (length === undefined) {
length = 0;
for (var i = 0; i < list.length; i++)
@ -255,11 +260,6 @@ Buffer.concat = function(list, length) {
length = length >>> 0;
}
if (list.length === 0)
return new Buffer(0);
else if (list.length === 1)
return list[0];
var buffer = new Buffer(length);
var pos = 0;
for (var i = 0; i < list.length; i++) {