Browse Source

Merge pull request #2112 from svaarala/cbor-perf-tests

Add some CBOR perf tests
pull/2113/head
Sami Vaarala 5 years ago
committed by GitHub
parent
commit
ab1f8c74f0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 36
      tests/perf/test-cbor-encode-1.js
  2. 41
      tests/perf/test-cbor-encode-2.js
  3. 36
      tests/perf/test-cbor-encode-largeobj.js
  4. 33
      tests/perf/test-cbor-serialize.js

36
tests/perf/test-cbor-encode-1.js

@ -0,0 +1,36 @@
if (typeof print !== 'function') { print = console.log; }
function test() {
var msg = {
jsonrpc: '2.0',
method: 'FooBar',
params: {
foo: 123,
bar: [ true, false, 123.456 ],
quux: {
baz: true,
quuux: false
}
}
};
for (var i = 0; i < 1e5; i++) {
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
}
}
try {
test();
} catch (e) {
print(e.stack || e);
throw e;
}

41
tests/perf/test-cbor-encode-2.js

@ -0,0 +1,41 @@
if (typeof print !== 'function') { print = console.log; }
function test() {
var msg = {
jsonrpc: '2.0',
method: 'FooBar',
params: {
arg1: 'xxxxxyyyyy',
arg2: 'xxxxxyyyyyzzzzzwwwww',
arg3: 'xxxxxyyyyy',
arg4: 'xxxxxyyyyyzzzzzwwwww',
arg5: 'xxxxxyyyyy',
arg6: 'xxxxxyyyyyzzzzzwwwww',
arg7: 'xxxxxyyyyy',
arg8: 'xxxxxyyyyyzzzzzwwwww',
arg9: 'xxxxxyyyyy',
arg10: 'xxxxxyyyyyzzzzzwwwww',
arg11: [ 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0 ]
}
};
for (var i = 0; i < 1e5; i++) {
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
void CBOR.encode(msg);
}
}
try {
test();
} catch (e) {
print(e.stack || e);
throw e;
}

36
tests/perf/test-cbor-encode-largeobj.js

@ -0,0 +1,36 @@
if (typeof print !== 'function') { print = console.log; }
function build() {
var obj = {};
for (var i = 0; i < 3000; i++) {
var k = 'key' + i;
var v;
switch (i % 4) {
case 0: v = true; break;
case 1: v = 123.4; break;
case 2: v = { foo: 1, bar: 2, quux: 3, baz: 4, quuux: 5 }; break;
case 3: v = [ 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.12345 ]; break;
}
obj[k] = v;
}
return obj;
}
function test() {
var obj;
var i;
var ignore;
obj = build();
for (i = 0; i < 1e3; i++) {
ignore = CBOR.encode(obj);
}
}
try {
test();
} catch (e) {
print(e.stack || e);
throw e;
}

33
tests/perf/test-cbor-serialize.js

@ -0,0 +1,33 @@
if (typeof print !== 'function') { print = console.log; }
function build() {
var obj = {};
obj.key1 = 'foo';
obj.key2 = 'bar';
obj.key3 = 'quux';
obj.key4 = 'baz';
obj.key5 = 'quuux';
obj.key6 = [ 'foo', 'bar', 'quux', 'baz', 'quuux' ];
obj.key7 = [ undefined, null, true, 123.456, 1e200, {}, {}, {} ];
return obj;
}
function test() {
var obj;
var i;
var ignore;
obj = build();
for (i = 0; i < 4e5; i++) {
ignore = CBOR.encode(obj);
}
}
try {
test();
} catch (e) {
print(e.stack || e);
throw e;
}
Loading…
Cancel
Save