diff options
Diffstat (limited to 'deps/node/benchmark/crypto/hash-stream-creation.js')
-rw-r--r-- | deps/node/benchmark/crypto/hash-stream-creation.js | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/deps/node/benchmark/crypto/hash-stream-creation.js b/deps/node/benchmark/crypto/hash-stream-creation.js deleted file mode 100644 index 8ffbe148..00000000 --- a/deps/node/benchmark/crypto/hash-stream-creation.js +++ /dev/null @@ -1,82 +0,0 @@ -// throughput benchmark -// creates a single hasher, then pushes a bunch of data through it -'use strict'; -const common = require('../common.js'); -const crypto = require('crypto'); - -const bench = common.createBenchmark(main, { - writes: [500], - algo: [ 'sha256', 'md5' ], - type: ['asc', 'utf', 'buf'], - out: ['hex', 'binary', 'buffer'], - len: [2, 1024, 102400, 1024 * 1024], - api: ['legacy', 'stream'] -}); - -function main({ api, type, len, out, writes, algo }) { - if (api === 'stream' && /^v0\.[0-8]\./.test(process.version)) { - console.error('Crypto streams not available until v0.10'); - // Use the legacy, just so that we can compare them. - api = 'legacy'; - } - - var message; - var encoding; - switch (type) { - case 'asc': - message = 'a'.repeat(len); - encoding = 'ascii'; - break; - case 'utf': - message = 'ΓΌ'.repeat(len / 2); - encoding = 'utf8'; - break; - case 'buf': - message = Buffer.alloc(len, 'b'); - break; - default: - throw new Error(`unknown message type: ${type}`); - } - - const fn = api === 'stream' ? streamWrite : legacyWrite; - - bench.start(); - fn(algo, message, encoding, writes, len, out); -} - -function legacyWrite(algo, message, encoding, writes, len, outEnc) { - const written = writes * len; - const bits = written * 8; - const gbits = bits / (1024 * 1024 * 1024); - - while (writes-- > 0) { - const h = crypto.createHash(algo); - h.update(message, encoding); - var res = h.digest(outEnc); - - // Include buffer creation costs for older versions - if (outEnc === 'buffer' && typeof res === 'string') - res = Buffer.from(res, 'binary'); - } - - bench.end(gbits); -} - -function streamWrite(algo, message, encoding, writes, len, outEnc) { - const written = writes * len; - const bits = written * 8; - const gbits = bits / (1024 * 1024 * 1024); - - while (writes-- > 0) { - const h = crypto.createHash(algo); - - if (outEnc !== 'buffer') - h.setEncoding(outEnc); - - h.write(message, encoding); - h.end(); - h.read(); - } - - bench.end(gbits); -} |