stream: improve read() performance further

PR-URL: https://github.com/nodejs/node/pull/29077
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
Brian White authored and Rich Trott committed 2019-08-12 16:55:05 -07:00
1 parent f114e5ba33
commit 382f84a7f8
1 file changed
+11 -11
+11 -11
View File
@@ -71,19 +71,19 @@ module.exports = class BufferList {
// Consumes a specified amount of bytes or characters from the buffered data.
consume(n, hasStrings) {
var ret;
if (n < this.head.data.length) {
const data = this.head.data;
if (n < data.length) {
// `slice` is the same for buffers and strings.
ret = this.head.data.slice(0, n);
this.head.data = this.head.data.slice(n);
} else if (n === this.head.data.length) {
// First chunk is a perfect match.
ret = this.shift();
} else {
// Result spans more than one buffer.
ret = hasStrings ? this._getString(n) : this._getBuffer(n);
const slice = data.slice(0, n);
this.head.data = data.slice(n);
return slice;
}
return ret;
if (n === data.length) {
// First chunk is a perfect match.
return this.shift();
}
// Result spans more than one buffer.
return hasStrings ? this._getString(n) : this._getBuffer(n);
}
first() {