Skip to content

Commit d3c484c

Browse files
🚀 perf(benchmark): Test more sizes.
1 parent 79d2e35 commit d3c484c

File tree

1 file changed

+73
-27
lines changed

1 file changed

+73
-27
lines changed

_benchmark/index.js

Lines changed: 73 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -293,29 +293,64 @@ fns['bn.js'].k256 = 'k256' ;
293293
function newFixture ( ) {
294294
const fixture = {};
295295

296-
const a = prng.randomBytes(32).toString('hex');
297-
const b = prng.randomBytes(32).toString('hex');
298-
const aj = prng.randomBytes(768).toString('hex');
299-
const bj = prng.randomBytes(768).toString('hex');
300-
301-
const a10base = new bn(a, 16).toString(10);
302-
const a16base = new bn(a, 16).toString(16);
296+
const _a32 = prng.randomBytes(32).toString('hex');
297+
const _b32 = prng.randomBytes(32).toString('hex');
298+
const _a64 = prng.randomBytes(64).toString('hex');
299+
const _b64 = prng.randomBytes(64).toString('hex');
300+
const _a128 = prng.randomBytes(128).toString('hex');
301+
const _b128 = prng.randomBytes(128).toString('hex');
302+
const _a256 = prng.randomBytes(256).toString('hex');
303+
const _b256 = prng.randomBytes(256).toString('hex');
304+
const _a512 = prng.randomBytes(512).toString('hex');
305+
const _b512 = prng.randomBytes(512).toString('hex');
306+
const _a768 = prng.randomBytes(768).toString('hex');
307+
const _b768 = prng.randomBytes(768).toString('hex');
308+
const _a1024 = prng.randomBytes(1024).toString('hex');
309+
const _b1024 = prng.randomBytes(1024).toString('hex');
310+
const _a2048 = prng.randomBytes(2048).toString('hex');
311+
const _b2048 = prng.randomBytes(2048).toString('hex');
312+
const _a4096 = prng.randomBytes(4096).toString('hex');
313+
const _b4096 = prng.randomBytes(4096).toString('hex');
314+
const _a8192 = prng.randomBytes(8192).toString('hex');
315+
const _b8192 = prng.randomBytes(8192).toString('hex');
316+
317+
const a10base = new bn(_a32, 16).toString(10);
318+
const a16base = new bn(_b32, 16).toString(16);
303319

304320
const init = fn => {
305-
const a1 = fn.from16(a);
306-
const b1 = fn.from16(b);
307-
const a1j = fn.from16(aj);
308-
const b1j = fn.from16(bj);
321+
const a32 = fn.from16(_a32);
322+
const b32 = fn.from16(_b32);
323+
const a64 = fn.from16(_a64);
324+
const b64 = fn.from16(_b64);
325+
const a128 = fn.from16(_a128);
326+
const b128 = fn.from16(_b128);
327+
const a256 = fn.from16(_a256);
328+
const b256 = fn.from16(_b256);
329+
const a512 = fn.from16(_a512);
330+
const b512 = fn.from16(_b512);
331+
const a768 = fn.from16(_a768);
332+
const b768 = fn.from16(_b768);
333+
const a1024 = fn.from16(_a1024);
334+
const b1024 = fn.from16(_b1024);
335+
const a2048 = fn.from16(_a2048);
336+
const b2048 = fn.from16(_b2048);
337+
const a4096 = fn.from16(_a4096);
338+
const b4096 = fn.from16(_b4096);
339+
const a8192 = fn.from16(_a8192);
340+
const b8192 = fn.from16(_b8192);
309341
const x = fn.from16('2adbeef');
310-
const as1 = fn.add(fn.sqr(a1), x);
311-
const am1 = fn.toRed && fn.toRed(a1);
342+
const as1 = fn.add(fn.sqr(a32), x);
343+
const am1 = fn.toRed && fn.toRed(a32);
312344
const pow1 = fn.fromRed && fn.fromRed(am1);
313345
return {
314-
a1, b1, a1j, b1j, as1, am1, pow1, a10base, a16base,
346+
a32, b32, a64, b64, a128, b128, a256, b256, a512, b512, a768, b768,
347+
a1024, b1024, a2048, b2048, a4096, b4096, a8192, b8192,
348+
as1, am1, pow1, a10base, a16base,
315349
} ;
316350
}
317351

318352
Object.keys(fns).forEach( name => {
353+
if(!filter.test(name)) return;
319354
fixture[name] = {};
320355
fixture[name].args = init(fns[name]);
321356
fixture[name].outs = {};
@@ -329,22 +364,32 @@ while (fixtures.length < NFIXTURES) fixtures.push(newFixture()) ;
329364

330365
add('from10', 'a10base');
331366
add('from16', 'a16base');
332-
add('to10', 'a1');
333-
add('to16', 'a1');
334-
add('add', 'a1', 'b1');
335-
add('add', 'a1j', 'b1j');
336-
add('sub', 'a1', 'b1');
337-
add('sub', 'a1j', 'b1j');
338-
add('mul', 'a1', 'b1');
339-
add('mul', 'a1j', 'b1j');
340-
add('sqr', 'a1');
341-
add('div', 'as1', 'a1');
342-
add('mod', 'as1', 'a1');
367+
add('to10', 'a32');
368+
add('to16', 'a32');
369+
add('add', 'a32', 'b32');
370+
add('add', 'a768', 'b768');
371+
add('sub', 'a32', 'b32');
372+
add('sub', 'a768', 'b768');
373+
374+
add('mul', 'a32', 'b32');
375+
add('mul', 'a64', 'b64');
376+
add('mul', 'a128', 'b128');
377+
add('mul', 'a256', 'b256');
378+
add('mul', 'a512', 'b512');
379+
add('mul', 'a768', 'b768');
380+
add('mul', 'a1024', 'b1024');
381+
add('mul', 'a2048', 'b2048');
382+
add('mul', 'a4096', 'b4096');
383+
add('mul', 'a8192', 'b8192');
384+
385+
add('sqr', 'a32');
386+
add('div', 'as1', 'a32');
387+
add('mod', 'as1', 'a32');
343388
add('sqrm', 'am1');
344389
add('powm', 'am1', 'pow1');
345390
add('invm', 'am1');
346-
add('gcd', 'a1', 'b1');
347-
add('egcd', 'a1', 'b1');
391+
add('gcd', 'a32', 'b32');
392+
add('egcd', 'a32', 'b32');
348393

349394
start();
350395

@@ -354,6 +399,7 @@ const results = new Array(NFIXTURES) ;
354399
for ( let i = 0; i < NFIXTURES; ++i ) {
355400
results[i] = {};
356401
Object.keys(fns).forEach( name => {
402+
if(!filter.test(name)) return;
357403
const fn = fns[name];
358404
const fixture = fixtures[i][name];
359405
Object.keys(fixture.outs).forEach( key => {

0 commit comments

Comments
 (0)