summaryrefslogtreecommitdiff
path: root/benchmark/string_decoder/string-decoder-create.js
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2016-05-15 14:53:08 -0400
committerBrian White <mscdex@mscdex.net>2016-05-29 14:48:11 -0400
commitd23b7d2656dc25f6a33bcd436e15e9fd84aabc27 (patch)
tree060244c16130683bacea879e9750c5c15ca6a592 /benchmark/string_decoder/string-decoder-create.js
parent435e673efdfa24a0446ff1e93fa3baa19437f335 (diff)
downloadandroid-node-v8-d23b7d2656dc25f6a33bcd436e15e9fd84aabc27.tar.gz
android-node-v8-d23b7d2656dc25f6a33bcd436e15e9fd84aabc27.tar.bz2
android-node-v8-d23b7d2656dc25f6a33bcd436e15e9fd84aabc27.zip
string_decoder: rewrite implementation
This commit provides a rewrite of StringDecoder that both improves performance (for non-single-byte encodings) and understandability. Additionally, StringDecoder instantiation performance has increased considerably due to inlinability and more efficient encoding name checking. PR-URL: https://github.com/nodejs/node/pull/6777 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'benchmark/string_decoder/string-decoder-create.js')
-rw-r--r--benchmark/string_decoder/string-decoder-create.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/benchmark/string_decoder/string-decoder-create.js b/benchmark/string_decoder/string-decoder-create.js
new file mode 100644
index 0000000000..17c0f6750d
--- /dev/null
+++ b/benchmark/string_decoder/string-decoder-create.js
@@ -0,0 +1,22 @@
+'use strict';
+const common = require('../common.js');
+const StringDecoder = require('string_decoder').StringDecoder;
+
+const bench = common.createBenchmark(main, {
+ encoding: [
+ 'ascii', 'utf8', 'utf-8', 'base64', 'ucs2', 'UTF-8', 'AscII', 'UTF-16LE'
+ ],
+ n: [25e6]
+});
+
+function main(conf) {
+ const encoding = conf.encoding;
+ const n = conf.n | 0;
+
+ bench.start();
+ for (var i = 0; i < n; ++i) {
+ const sd = new StringDecoder(encoding);
+ !!sd.encoding;
+ }
+ bench.end(n);
+}