summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2017-04-10 05:03:57 -0400
committerAnna Henningsen <anna@addaleax.net>2017-04-14 22:35:59 +0200
commit4a86803f6005cc0b67a093fb852109b343cb8654 (patch)
tree11a1f4cbd125f1cc5cd1c15ff1a6cc71e3f2672e /benchmark
parent46f202690b83bda6ba4b49291a8fd107f7ef1496 (diff)
downloadandroid-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.js34
-rw-r--r--benchmark/buffers/buffer-from.js10
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++) {