summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2017-04-10 05:07:58 -0400
committerAnna Henningsen <anna@addaleax.net>2017-04-14 22:36:46 +0200
commit4749ec2aa31523c7dad796695c223f9d1a2f1c34 (patch)
tree664bda46c9c5a946c6d4c348eb6bd33df30cc398 /benchmark
parent3ee4a1a281d6bd4bd7be0577aed41a0f1c9bb1a0 (diff)
downloadandroid-node-v8-4749ec2aa31523c7dad796695c223f9d1a2f1c34.tar.gz
android-node-v8-4749ec2aa31523c7dad796695c223f9d1a2f1c34.tar.bz2
android-node-v8-4749ec2aa31523c7dad796695c223f9d1a2f1c34.zip
buffer: optimize write()
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-write-string.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/benchmark/buffers/buffer-write-string.js b/benchmark/buffers/buffer-write-string.js
new file mode 100644
index 0000000000..927aa0b684
--- /dev/null
+++ b/benchmark/buffers/buffer-write-string.js
@@ -0,0 +1,70 @@
+'use strict';
+
+const common = require('../common.js');
+const bench = common.createBenchmark(main, {
+ encoding: [
+ '', 'utf8', 'ascii', 'hex', 'UCS-2', 'utf16le', 'latin1', 'binary'
+ ],
+ args: [ '', 'offset', 'offset+length' ],
+ len: [10, 2048],
+ n: [1e7]
+});
+
+function main(conf) {
+ const len = +conf.len;
+ const n = +conf.n;
+ const encoding = conf.encoding;
+ const args = conf.args;
+
+ const string = 'a'.repeat(len);
+ const buf = Buffer.allocUnsafe(len);
+
+ var i;
+
+ switch (args) {
+ case 'offset':
+ if (encoding) {
+ bench.start();
+ for (i = 0; i < n; ++i) {
+ buf.write(string, 0, encoding);
+ }
+ bench.end(n);
+ } else {
+ bench.start();
+ for (i = 0; i < n; ++i) {
+ buf.write(string, 0);
+ }
+ bench.end(n);
+ }
+ break;
+ case 'offset+length':
+ if (encoding) {
+ bench.start();
+ for (i = 0; i < n; ++i) {
+ buf.write(string, 0, buf.length, encoding);
+ }
+ bench.end(n);
+ } else {
+ bench.start();
+ for (i = 0; i < n; ++i) {
+ buf.write(string, 0, buf.length);
+ }
+ bench.end(n);
+ }
+ break;
+ default:
+ if (encoding) {
+ bench.start();
+ for (i = 0; i < n; ++i) {
+ buf.write(string, encoding);
+ }
+ bench.end(n);
+ } else {
+ bench.start();
+ for (i = 0; i < n; ++i) {
+ buf.write(string);
+ }
+ bench.end(n);
+ }
+ }
+}