summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVse Mozhet Byt <vsemozhetbyt@gmail.com>2017-04-17 04:07:43 +0300
committerVse Mozhet Byt <vsemozhetbyt@gmail.com>2017-04-20 04:47:18 +0300
commit3b1e837c270b4b540705b7c447db850e48cc2bf3 (patch)
treef5a977575b0fbe413ebbbf1d1b27d2340018052a
parent22aa3d48997f1fc31e9c9cc08ec76a5436c93fe3 (diff)
downloadandroid-node-v8-3b1e837c270b4b540705b7c447db850e48cc2bf3.tar.gz
android-node-v8-3b1e837c270b4b540705b7c447db850e48cc2bf3.tar.bz2
android-node-v8-3b1e837c270b4b540705b7c447db850e48cc2bf3.zip
benchmark: add benchmark for string concatenations
PR-URL: https://github.com/nodejs/node/pull/12455 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
-rw-r--r--benchmark/es/string-concatenations.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/benchmark/es/string-concatenations.js b/benchmark/es/string-concatenations.js
new file mode 100644
index 0000000000..8bdaefa4da
--- /dev/null
+++ b/benchmark/es/string-concatenations.js
@@ -0,0 +1,69 @@
+'use strict';
+
+const common = require('../common.js');
+
+const configs = {
+ n: [1e3],
+ mode: [
+ 'multi-concat',
+ 'multi-join',
+ 'multi-template',
+ 'to-string-string',
+ 'to-string-concat',
+ 'to-string-template',
+ ],
+};
+
+const bench = common.createBenchmark(main, configs);
+
+
+function main(conf) {
+ const n = +conf.n;
+ const mode = conf.mode;
+
+ const str = 'abc';
+ const num = 123;
+
+ let string;
+
+ switch (mode) {
+ case 'multi-concat':
+ bench.start();
+ for (let i = 0; i < n; i++)
+ string = '...' + str + ', ' + num + ', ' + str + ', ' + num + '.';
+ bench.end(n);
+ break;
+ case 'multi-join':
+ bench.start();
+ for (let i = 0; i < n; i++)
+ string = ['...', str, ', ', num, ', ', str, ', ', num, '.'].join('');
+ bench.end(n);
+ break;
+ case 'multi-template':
+ bench.start();
+ for (let i = 0; i < n; i++)
+ string = `...${str}, ${num}, ${str}, ${num}.`;
+ bench.end(n);
+ break;
+ case 'to-string-string':
+ bench.start();
+ for (let i = 0; i < n; i++)
+ string = String(num);
+ bench.end(n);
+ break;
+ case 'to-string-concat':
+ bench.start();
+ for (let i = 0; i < n; i++)
+ string = '' + num;
+ bench.end(n);
+ break;
+ case 'to-string-template':
+ bench.start();
+ for (let i = 0; i < n; i++)
+ string = `${num}`;
+ bench.end(n);
+ break;
+ }
+
+ return string;
+}