optimize PrivateKey with cache
This commit is contained in:
parent
f90decca0e
commit
5847d6aff2
8 changed files with 109 additions and 50 deletions
51
test/test.performance.js
Normal file
51
test/test.performance.js
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
'use strict';
|
||||
|
||||
var chai = chai || require('chai');
|
||||
var should = chai.should();
|
||||
|
||||
var WebRTC = require('../js/models/network/WebRTC');
|
||||
var Insight = require('../js/models/blockchain/Insight');
|
||||
var FakeStorage = require('./mocks/FakeStorage');
|
||||
var PrivateKey = require('../js/models/core/PrivateKey');
|
||||
|
||||
var WalletFactory = typeof copay === 'undefined' ? require('soop').load('../js/models/core/WalletFactory',{
|
||||
Network: WebRTC,
|
||||
Blockchain: Insight,
|
||||
Storage: FakeStorage,
|
||||
}) : copay.WalletFactory;
|
||||
|
||||
|
||||
describe('Performance tests', function() {
|
||||
var config = {
|
||||
wallet: {
|
||||
requiredCopayers: 1,
|
||||
totalCopayers: 1,
|
||||
spendUnconfirmed: 1,
|
||||
},
|
||||
networkName: 'testnet',
|
||||
};
|
||||
|
||||
describe('PrivateKey', function() {
|
||||
it('should optimize BIP32 private key gen time with cache', function() {
|
||||
var k1 = new PrivateKey();
|
||||
var generateN = 25;
|
||||
var generated = [];
|
||||
var start1 = new Date().getTime();
|
||||
for (var i=0; i<generateN; i++) {
|
||||
var k = JSON.stringify(k1.get(i, false).storeObj());
|
||||
generated.push(k);
|
||||
}
|
||||
var delta1 = new Date().getTime() - start1;
|
||||
var backup = k1.toObj();
|
||||
var k2 = new PrivateKey(backup);
|
||||
var start2 = new Date().getTime();
|
||||
for (var i=0; i<generateN; i++) {
|
||||
var k = JSON.stringify(k2.get(i, false).storeObj());
|
||||
generated[i].should.equal(k);
|
||||
}
|
||||
var delta2 = new Date().getTime() - start2;
|
||||
delta2.should.be.below(delta1);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue