diff options
author | Brian White <mscdex@mscdex.net> | 2017-04-10 05:03:57 -0400 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-04-14 22:35:59 +0200 |
commit | 4a86803f6005cc0b67a093fb852109b343cb8654 (patch) | |
tree | 11a1f4cbd125f1cc5cd1c15ff1a6cc71e3f2672e /benchmark | |
parent | 46f202690b83bda6ba4b49291a8fd107f7ef1496 (diff) | |
download | android-node-v8-4a86803f6005cc0b67a093fb852109b343cb8654.tar.gz android-node-v8-4a86803f6005cc0b67a093fb852109b343cb8654.tar.bz2 android-node-v8-4a86803f6005cc0b67a093fb852109b343cb8654.zip |
buffer: optimize from() and byteLength()
PR-URL: https://github.com/nodejs/node/pull/12361
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/buffers/buffer-bytelength.js | 34 | ||||
-rw-r--r-- | benchmark/buffers/buffer-from.js | 10 |
2 files changed, 29 insertions, 15 deletions
diff --git a/benchmark/buffers/buffer-bytelength.js b/benchmark/buffers/buffer-bytelength.js index f52cbc2c6b..f24bc5bc29 100644 --- a/benchmark/buffers/buffer-bytelength.js +++ b/benchmark/buffers/buffer-bytelength.js @@ -2,7 +2,7 @@ var common = require('../common'); var bench = common.createBenchmark(main, { - encoding: ['utf8', 'base64'], + encoding: ['utf8', 'base64', 'buffer'], len: [1, 2, 4, 16, 64, 256], // x16 n: [5e6] }); @@ -21,21 +21,27 @@ function main(conf) { var encoding = conf.encoding; var strings = []; - for (var string of chars) { - // Strings must be built differently, depending on encoding - var data = buildString(string, len); - if (encoding === 'utf8') { - strings.push(data); - } else if (encoding === 'base64') { - // Base64 strings will be much longer than their UTF8 counterparts - strings.push(Buffer.from(data, 'utf8').toString('base64')); + var results; + if (encoding === 'buffer') { + strings = [ Buffer.alloc(len * 16, 'a') ]; + results = [ len * 16 ]; + } else { + for (var string of chars) { + // Strings must be built differently, depending on encoding + var data = buildString(string, len); + if (encoding === 'utf8') { + strings.push(data); + } else if (encoding === 'base64') { + // Base64 strings will be much longer than their UTF8 counterparts + strings.push(Buffer.from(data, 'utf8').toString('base64')); + } } - } - // Check the result to ensure it is *properly* optimized - var results = strings.map(function(val) { - return Buffer.byteLength(val, encoding); - }); + // Check the result to ensure it is *properly* optimized + results = strings.map(function(val) { + return Buffer.byteLength(val, encoding); + }); + } bench.start(); for (var i = 0; i < n; i++) { diff --git a/benchmark/buffers/buffer-from.js b/benchmark/buffers/buffer-from.js index c7889b2ec6..50cfbc887a 100644 --- a/benchmark/buffers/buffer-from.js +++ b/benchmark/buffers/buffer-from.js @@ -10,11 +10,12 @@ const bench = common.createBenchmark(main, { 'buffer', 'uint8array', 'string', + 'string-utf8', 'string-base64', 'object' ], len: [10, 2048], - n: [1024] + n: [2048] }); function main(conf) { @@ -75,6 +76,13 @@ function main(conf) { } bench.end(n); break; + case 'string-utf8': + bench.start(); + for (i = 0; i < n * 1024; i++) { + Buffer.from(str, 'utf8'); + } + bench.end(n); + break; case 'string-base64': bench.start(); for (i = 0; i < n * 1024; i++) { |