refactor: speed up benchmarks

This commit is contained in:
David Dias 2018-01-07 10:54:59 +00:00
parent 65b9675ffe
commit 5ee1573637
3 changed files with 23 additions and 32 deletions

5
benchmarks/peer-a.json Normal file
View File

@ -0,0 +1,5 @@
{
"id": "QmVbkvMswbUZbmRHbmBicg5sdzDYBnvGPC5PhZFnkozdoP",
"privKey": "CAASpgkwggSiAgEAAoIBAQCX1xFsZIszqLYXaJ7QZUbotUcWC6SB0CZGUamCPWD5Idfa+LiMByQKLxJrttNkcx+85NRIYPzlV6ToHz6OH/WzUCXEOFy0iKmq/Jz15KKuzzDuyzToqPI0EPRTKWoxI4rj7Ppx6wFQvancgLvxxmPslaqxST+9tsdDw5W2cQnRAIBPoJZtrS9AL9dya6bt6GiLQKKHox4jxVE0P/QYj6/LX7e5wjZMfeS6y4yIdfSiu9UueLI78pixRn5qXcn0zL0L/+xWNsZG2tSVG7BbHFGm4PjF/WdELSOHj9R2YWH+snzdkxPcX3zwle+JKJW/AJGjJGMIoNkIuDg/1uizSRzhAgMBAAECggEAa90gR3v1VzFWibKMf0Yy5UVBxmtm5cDUL8f7PsYTiWd9S9S8ZNz9wS5HS7WI3ibaOPnlw7UCcnmccDkh2xzhEgyxh37yfF1JCmqBpjxRRRVykXBRmaXKySnyJtGY2meBVwEVuK9VM+JINJhO6yYf/gUkSOTcHw0k6QKb7ArJCmrMVH/b/mjqbzQpUM74M6f/5DDU2IYCAaGu5QB7VZsAFSocb5aVvbW3uEAwJ9AmoqYOte6Jlsv07Rb+bENj6E7CeGsh4UPIqLv5ALaLF41U+JDSj/H9fegoxY4lUEEz0cGbgZLOcWUgYCQ3R+E2aBF+EpZ7ySuZjtfwWiXTUVqrQQKBgQD7TNc/kY3IRiMSGy7WJ60wqPc7+f2WnoJFMNPC0G9m0mWvB3jFwmM0lmx6LJ7zw6Xvxxt/LiFFA2dPzvXtxrj2yrKhIhB6fmVNj8VZibxTDGfONXEfc5IvqNQpv0ysCCmt9xlb2GzbJat7jasU8nzcOZED0FjbW8AXVTetXXwozQKBgQCargnkV2CzaKYHfxdJViplBEPaJtOBzcf7XtC62V5NPRruAdOEWvjO0HX9AGemss5F2hruWzAJ99drpbYeDoWPtkM6ui2WeatiOCuU9tom6OtvZ6JbCgDRnUgnvl6R1LhgYT0qm7zdz2CoTtlA9ll9CeqRs0fdrnTpJcxyCpEUZQKBgArh2vhfvzoK/33LO43+jdtrlbk9LCQXnSCN6r2m9QwI1Gpt8mbt8gnW8b+gqwl3UXo+rwwk3T/108V6+t9fGadmQ7ICnaAQVSa0sSEde9BE20HswodQI+Z4cyeTpyhT+ioUZz648o3S5cgl7GCt14ZZ39PAc/ib0oewIwcY40WJAoGAF7mCAuf0CRCQBq5ToAf7UKsqzRcPceViOwf78+zLLgWlT8Qv8SkS6IXI0xlwzHy4brZZUx3hbGX7QKOWH14S1kwaW7Oasm3O/62l4Z9LLpSjJ985Y8VRAtWg75efYbbC4OWJQDPK8CqSpL4TTId8ilUvCVH6P+I2RFxr00ITppECgYA8P3AOAxS/PhNoH02rLi6DHnfcotWGM9m5QkImyH7OL2Im1sKekVuF18iNamxk8HVTo0BMwda86Gdwhr7M0eh7cAuj9kHgYqPsgWKiHEHu2wq7jz85O4EKT96JI8QEphHEWDaBS1toSFnCxFYBsPtCoJO5KMAOLpda70VcRhY+/Q==",
"pubKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCX1xFsZIszqLYXaJ7QZUbotUcWC6SB0CZGUamCPWD5Idfa+LiMByQKLxJrttNkcx+85NRIYPzlV6ToHz6OH/WzUCXEOFy0iKmq/Jz15KKuzzDuyzToqPI0EPRTKWoxI4rj7Ppx6wFQvancgLvxxmPslaqxST+9tsdDw5W2cQnRAIBPoJZtrS9AL9dya6bt6GiLQKKHox4jxVE0P/QYj6/LX7e5wjZMfeS6y4yIdfSiu9UueLI78pixRn5qXcn0zL0L/+xWNsZG2tSVG7BbHFGm4PjF/WdELSOHj9R2YWH+snzdkxPcX3zwle+JKJW/AJGjJGMIoNkIuDg/1uizSRzhAgMBAAE="
}

5
benchmarks/peer-b.json Normal file
View File

@ -0,0 +1,5 @@
{
"id": "QmTY6txxqgf7E3ChpYEXqz6QSVa32qjDbyeKuiaPYT1vx9",
"privKey": "CAASqQkwggSlAgEAAoIBAQDLAL7+npPinALH9GE0SSSgi89fIWnbZXO1e94cdpJsR6WoZgGeHNZMTUew3x7TeJV1PoX7DFyM2ZxnclJx/C2DLQzQbRnmbMNqfq+3WfvRBk/e2D0UtwALSCPvM5qKBj7JWCAleAw7ypfJYXL1rSa5tYtLprQd6mt9IZsBCHLnfPibMM8X+8QOkw0Y40NONFaTRPN3PXznAmMekFkAMpSf1QyhNlS2WCX5+aARz8uEZYVdycjcA/ISq/WYxEeFCoyRVdEvjeq+NS5b6pFV5nZ4PnOJzFmvEyGBqndpNHEMgCWsvlspXN/jFMY1pTBds/35b4Vqd6ui7lZTiIEr/3nZAgMBAAECggEBALaLMTRc/Lale4q6oj4WF62Wix8MONhk3iuv+wa1SO29b6WCNKotXDa4t2LBAENBB4SqeGhLsV2mwRH0p1aAYZy3gfJaaRPfccntqazCacKIXoIRCLv74zpB4K5URP8gpoz/hcirrrSFdQBNdMaesVgFfADHIuhTx9x5v5yqMEkfaOe5SDxGLhYGEfBGm/+a3zJK9BXUkQ8gCiqRXlCYM2x9emzBBOKDRBUYTJeSStggHKMJwrCm+XYyAMeYf9CLGXa0ziG4QU7F/4QdqPGL6b4aUaT/hLW+SpQUFGsMsioO6k+HGqVEfSemBNteqohxK8ibcgeoZgpUCMXYgd+0DJECgYEA8e6Egshr7kx+O7Jy0C/tRx4+B8H0m9ZyWdKn1rVH9M41JmswDQlh3qY6q2pma35g0J0zqvIn4usGlFfanG3BpD/yiBDAd/75OxD25Jxk6wDXgOnoxFCDwBfi8IlYy8fGxSEizNZHS3oungyr402aMu9k+aTXtGJytp7RHQGCw98CgYEA1s64bTtBmSHtKovHHqlXn/fKBmldxRc68M1uP3TIGSKBeoo2pcS7T4tdXW55tyLVDtDJqe+WIRB8dsaCziI8gnypV4OXENIA09DUGRWlo0NBsd4JqgYe7ALMRLF1l1+DXvz/O33ikh2T7oAmrcOUDKSjcWYvgFGooalHBayxuUcCgYEAxuoRUWZwN1H1SCgEdl+xe5PF9KLn92luQ6QME2ChdQpGcPwYWd+o9GNAQcgNxbv25g8aeCb53HzYwAcr2wny+JULWAxN81tUl9fu5zAfWYkrpvarRx3b9YiuMo76zzHGoDYKYtibbddblN9eRFl9uvtRzmBWah23q6cQ0AR5+4kCgYBHHX8/YovQJ8Q9/rK4evXwlveCceXCd3Ni/5ANYBtS/vKA4DtBXEVrC0eoxAd10wlYc1UgdppsbenW5NevaPRBewYRXBZqUixF8/AUMe95gq3ANjNa39Xi6vY3k8zLhaqXiwjw6DdXioVMQ48KniJooSUfSOZXBDHg+4rw3QClxwKBgQCtlFXk2J0H4YoNrHxTupSui0xntwStQJEWd5Ze4uAK0Z82iJsahdqk6Wk3aqXZqYoXak5E88yzdGLjmqIb+qgzJVjtlHMRv6ETD+kY4ec8/IlTP7Lyxcx5odqi0ooTgUq4sRPWdiTjj4bZWdZS4gkwo12ZXqcyZe2qbuT+gYqrYQ==",
"pubKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLAL7+npPinALH9GE0SSSgi89fIWnbZXO1e94cdpJsR6WoZgGeHNZMTUew3x7TeJV1PoX7DFyM2ZxnclJx/C2DLQzQbRnmbMNqfq+3WfvRBk/e2D0UtwALSCPvM5qKBj7JWCAleAw7ypfJYXL1rSa5tYtLprQd6mt9IZsBCHLnfPibMM8X+8QOkw0Y40NONFaTRPN3PXznAmMekFkAMpSf1QyhNlS2WCX5+aARz8uEZYVdycjcA/ISq/WYxEeFCoyRVdEvjeq+NS5b6pFV5nZ4PnOJzFmvEyGBqndpNHEMgCWsvlspXN/jFMY1pTBds/35b4Vqd6ui7lZTiIEr/3nZAgMBAAE="
}

View File

@ -2,49 +2,30 @@
const Benchmark = require('benchmark') const Benchmark = require('benchmark')
const pull = require('pull-stream') const pull = require('pull-stream')
const parallel = require('async/parallel')
const pair = require('pull-pair/duplex') const pair = require('pull-pair/duplex')
const PeerId = require('peer-id') const PeerId = require('peer-id')
const crypto = require('libp2p-crypto')
const secio = require('../src') const secio = require('../src')
function createSession (insecure, cb) {
crypto.keys.generateKeyPair('RSA', 2048, (err, key) => {
if (err) { return cb(err) }
PeerId.createFromPrivKey(key.bytes, (err, id) => {
if (err) { return cb(err) }
cb(null, secio.encrypt(id, key, insecure))
})
})
}
const suite = new Benchmark.Suite('secio') const suite = new Benchmark.Suite('secio')
const ids = []
suite.add('createKey', (d) => { suite.add('establish an encrypted channel', (deferred) => {
crypto.keys.generateKeyPair('RSA', 2048, (err, key) => {
if (err) { throw err }
PeerId.createFromPrivKey(key.bytes, (err, id) => {
if (err) { throw err }
ids.push(id)
d.resolve()
})
})
}, { defer: true })
suite.add('send', (deferred) => {
const p = pair() const p = pair()
createSession(p[0], (err, local) => { parallel([
(cb) => PeerId.createFromJSON(require('./peer-a'), cb),
(cb) => PeerId.createFromJSON(require('./peer-b'), cb)
], (err, peers) => {
if (err) { throw err } if (err) { throw err }
createSession(p[1], (err, remote) => {
if (err) { throw err }
sendMessages(local, remote) const peerA = peers[0]
}) const peerB = peers[1]
const aToB = secio.encrypt(peerB, peerA.privKey, p[0], (err) => { throw err })
const bToA = secio.encrypt(peerA, peerB.privKey, p[1], (err) => { throw err })
sendMessages(aToB, bToA)
}) })
function sendMessages (local, remote) { function sendMessages (local, remote) {