Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
benchmark: (crypto) refactor
  • Loading branch information
BridgeAR committed Feb 1, 2018
commit a012a56ccd7dbc84a2a1c152dc67364d15a462ce
8 changes: 4 additions & 4 deletions benchmark/crypto/aes-gcm-throughput.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ const bench = common.createBenchmark(main, {
len: [1024, 4 * 1024, 16 * 1024, 64 * 1024, 256 * 1024, 1024 * 1024]
});

function main(conf) {
const message = Buffer.alloc(conf.len, 'b');
const key = crypto.randomBytes(keylen[conf.cipher]);
function main({ n, len, cipher }) {
const message = Buffer.alloc(len, 'b');
const key = crypto.randomBytes(keylen[cipher]);
const iv = crypto.randomBytes(12);
const associate_data = Buffer.alloc(16, 'z');
bench.start();
AEAD_Bench(conf.cipher, message, associate_data, key, iv, conf.n, conf.len);
AEAD_Bench(cipher, message, associate_data, key, iv, n, len);
}

function AEAD_Bench(cipher, message, associate_data, key, iv, n, len) {
Expand Down
19 changes: 9 additions & 10 deletions benchmark/crypto/cipher-stream.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ const bench = common.createBenchmark(main, {
api: ['legacy', 'stream']
});

function main(conf) {
var api = conf.api;
function main({ api, cipher, type, len, writes }) {
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.
Expand All @@ -33,33 +32,33 @@ function main(conf) {
// alice_secret and bob_secret should be the same
assert(alice_secret === bob_secret);

const alice_cipher = crypto.createCipher(conf.cipher, alice_secret);
const bob_cipher = crypto.createDecipher(conf.cipher, bob_secret);
const alice_cipher = crypto.createCipher(cipher, alice_secret);
const bob_cipher = crypto.createDecipher(cipher, bob_secret);

var message;
var encoding;
switch (conf.type) {
switch (type) {
case 'asc':
message = 'a'.repeat(conf.len);
message = 'a'.repeat(len);
encoding = 'ascii';
break;
case 'utf':
message = 'ü'.repeat(conf.len / 2);
message = 'ü'.repeat(len / 2);
encoding = 'utf8';
break;
case 'buf':
message = Buffer.alloc(conf.len, 'b');
message = Buffer.alloc(len, 'b');
break;
default:
throw new Error(`unknown message type: ${conf.type}`);
throw new Error(`unknown message type: ${type}`);
}

const fn = api === 'stream' ? streamWrite : legacyWrite;

// write data as fast as possible to alice, and have bob decrypt.
// use old API for comparison to v0.8
bench.start();
fn(alice_cipher, bob_cipher, message, encoding, conf.writes);
fn(alice_cipher, bob_cipher, message, encoding, writes);
}

function streamWrite(alice, bob, message, encoding, writes) {
Expand Down
6 changes: 2 additions & 4 deletions benchmark/crypto/get-ciphers.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@ const bench = common.createBenchmark(main, {
v: ['crypto', 'tls']
});

function main(conf) {
const n = +conf.n;
const v = conf.v;
function main({ n, v }) {
const method = require(v).getCiphers;
var i = 0;
// first call to getChipers will dominate the results
// First call to getChipers will dominate the results
if (n > 1) {
for (; i < n; i++)
method();
Expand Down
15 changes: 7 additions & 8 deletions benchmark/crypto/hash-stream-creation.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ const bench = common.createBenchmark(main, {
api: ['legacy', 'stream']
});

function main(conf) {
var api = conf.api;
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.
Expand All @@ -23,26 +22,26 @@ function main(conf) {

var message;
var encoding;
switch (conf.type) {
switch (type) {
case 'asc':
message = 'a'.repeat(conf.len);
message = 'a'.repeat(len);
encoding = 'ascii';
break;
case 'utf':
message = 'ü'.repeat(conf.len / 2);
message = 'ü'.repeat(len / 2);
encoding = 'utf8';
break;
case 'buf':
message = Buffer.alloc(conf.len, 'b');
message = Buffer.alloc(len, 'b');
break;
default:
throw new Error(`unknown message type: ${conf.type}`);
throw new Error(`unknown message type: ${type}`);
}

const fn = api === 'stream' ? streamWrite : legacyWrite;

bench.start();
fn(conf.algo, message, encoding, conf.writes, conf.len, conf.out);
fn(algo, message, encoding, writes, len, out);
}

function legacyWrite(algo, message, encoding, writes, len, outEnc) {
Expand Down
15 changes: 7 additions & 8 deletions benchmark/crypto/hash-stream-throughput.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ const bench = common.createBenchmark(main, {
api: ['legacy', 'stream']
});

function main(conf) {
var api = conf.api;
function main({ api, type, len, algo, writes }) {
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.
Expand All @@ -22,26 +21,26 @@ function main(conf) {

var message;
var encoding;
switch (conf.type) {
switch (type) {
case 'asc':
message = 'a'.repeat(conf.len);
message = 'a'.repeat(len);
encoding = 'ascii';
break;
case 'utf':
message = 'ü'.repeat(conf.len / 2);
message = 'ü'.repeat(len / 2);
encoding = 'utf8';
break;
case 'buf':
message = Buffer.alloc(conf.len, 'b');
message = Buffer.alloc(len, 'b');
break;
default:
throw new Error(`unknown message type: ${conf.type}`);
throw new Error(`unknown message type: ${type}`);
}

const fn = api === 'stream' ? streamWrite : legacyWrite;

bench.start();
fn(conf.algo, message, encoding, conf.writes, conf.len);
fn(algo, message, encoding, writes, len);
}

function legacyWrite(algo, message, encoding, writes, len) {
Expand Down
6 changes: 3 additions & 3 deletions benchmark/crypto/rsa-encrypt-decrypt-throughput.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ const bench = common.createBenchmark(main, {
len: [16, 32, 64]
});

function main(conf) {
const message = Buffer.alloc(conf.len, 'b');
function main({ len, algo, keylen, n }) {
const message = Buffer.alloc(len, 'b');
bench.start();
StreamWrite(conf.algo, conf.keylen, message, conf.n, conf.len);
StreamWrite(algo, keylen, message, n, len);
}

function StreamWrite(algo, keylen, message, n, len) {
Expand Down
6 changes: 3 additions & 3 deletions benchmark/crypto/rsa-sign-verify-throughput.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ const bench = common.createBenchmark(main, {
len: [1024, 102400, 2 * 102400, 3 * 102400, 1024 * 1024]
});

function main(conf) {
const message = Buffer.alloc(conf.len, 'b');
function main({ len, algo, keylen, writes }) {
const message = Buffer.alloc(len, 'b');
bench.start();
StreamWrite(conf.algo, conf.keylen, message, conf.writes, conf.len);
StreamWrite(algo, keylen, message, writes, len);
}

function StreamWrite(algo, keylen, message, writes, len) {
Expand Down