mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
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>
This commit is contained in:
5 files changed
+322
-216
No files matched your search
@@ -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);
|
||||
}
|
||||
Reference in new issue
Block a user