mirror of
https://github.com/nodejs/node.git
synced 2025-05-09 19:38:23 +00:00

Improve performance of crypto.getCiphers, getHashes, getCurves and tls.getCiphers by consolidating filterDuplicates logic, adding caching of output, and streamlining filterDuplicates implementation. Benchmarks: crypto.getCiphers n=1 v6.2.1 = 2559.3, new = 15890 ...... -83.89% crypto.getCiphers n=5000 v6.2.1 = 3516.3, new = 24203000 ... -99.99% tls.getCiphers n=1 v6.2.1 = 3405.3, new = 14877 ...... -77.11% tls.getCiphers n=5000 v6.2.1 = 6074.4, new = 24202000 ... -99.97% PR-URL: https://github.com/nodejs/node/pull/7225 Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Brian White <mscdex@mscdex.net>
21 lines
366 B
JavaScript
21 lines
366 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common.js');
|
|
|
|
const bench = common.createBenchmark(main, {
|
|
n: [1, 5000],
|
|
v: ['crypto', 'tls']
|
|
});
|
|
|
|
function main(conf) {
|
|
const n = +conf.n;
|
|
const v = conf.v;
|
|
const method = require(v).getCiphers;
|
|
var i = 0;
|
|
|
|
common.v8ForceOptimization(method);
|
|
bench.start();
|
|
for (; i < n; i++) method();
|
|
bench.end(n);
|
|
}
|