blob: bd999b5c4d5edf47c81b504814d5fb5955704440 [file] [log] [blame] [edit]
function _increment_counter_benchmark_js(N) {
var ctr = _get_counter();
var a = _emscripten_get_now();
for(i = 0; i < N; ++i) {
_increment_counter();
_increment_counter();
_increment_counter();
_increment_counter();
_increment_counter();
_increment_counter();
_increment_counter();
_increment_counter();
_increment_counter();
_increment_counter();
}
var b = _emscripten_get_now();
var ctr2 = _get_counter();
out("JS increment_counter " + N + " iters: " + (b-a) + " msecs. result: " + (ctr2-ctr));
}
function _increment_class_counter_benchmark_embind_js(N) {
var foo = new Module['Foo']();
var a = _emscripten_get_now();
for(i = 0; i < N; ++i) {
foo['incr_class_counter']();
foo['incr_class_counter']();
foo['incr_class_counter']();
foo['incr_class_counter']();
foo['incr_class_counter']();
foo['incr_class_counter']();
foo['incr_class_counter']();
foo['incr_class_counter']();
foo['incr_class_counter']();
foo['incr_class_counter']();
}
var b = _emscripten_get_now();
out("JS embind increment_class_counter " + N + " iters: " + (b-a) + " msecs. result: " + foo['class_counter_val']());
foo['delete']();
}
function _returns_input_benchmark_js() {
var a = _emscripten_get_now();
var t = 0;
for(i = 0; i < 100000; ++i) {
t += _returns_input(i);
t += _returns_input(i);
t += _returns_input(i);
t += _returns_input(i);
t += _returns_input(i);
t += _returns_input(i);
t += _returns_input(i);
t += _returns_input(i);
t += _returns_input(i);
t += _returns_input(i);
}
var b = _emscripten_get_now();
out("JS returns_input 100000 iters: " + (b-a) + " msecs. result: " + t);
}
function _sum_int_benchmark_js() {
var a = _emscripten_get_now();
var r = 0;
for(i = 0; i < 100000; ++i) {
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);
}
var b = _emscripten_get_now();
out("JS sum_int 100000 iters: " + (b-a) + " msecs. result: " + r);
}
function _sum_float_benchmark_js() {
var a = _emscripten_get_now();
var r = 0;
for(i = 0; i < 100000; ++i) {
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);
}
var b = _emscripten_get_now();
out("JS sum_float 100000 iters: " + (b-a) + " msecs. result: " + r);
}
function _increment_counter_benchmark_embind_js(N) {
var ctr = _get_counter();
var a = _emscripten_get_now();
for(i = 0; i < N; ++i) {
Module['increment_counter']();
Module['increment_counter']();
Module['increment_counter']();
Module['increment_counter']();
Module['increment_counter']();
Module['increment_counter']();
Module['increment_counter']();
Module['increment_counter']();
Module['increment_counter']();
Module['increment_counter']();
}
var b = _emscripten_get_now();
var ctr2 = _get_counter();
out("JS embind increment_counter " + N + " iters: " + (b-a) + " msecs. result: " + (ctr2-ctr));
}
function _returns_input_benchmark_embind_js() {
var a = _emscripten_get_now();
var t = 0;
for(i = 0; i < 100000; ++i) {
t += Module['returns_input'](i);
t += Module['returns_input'](i);
t += Module['returns_input'](i);
t += Module['returns_input'](i);
t += Module['returns_input'](i);
t += Module['returns_input'](i);
t += Module['returns_input'](i);
t += Module['returns_input'](i);
t += Module['returns_input'](i);
t += Module['returns_input'](i);
}
var b = _emscripten_get_now();
out("JS embind returns_input 100000 iters: " + (b-a) + " msecs. result: " + t);
}
function _sum_int_benchmark_embind_js() {
var a = _emscripten_get_now();
var r = 0;
for(i = 0; i < 100000; ++i) {
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);
}
var b = _emscripten_get_now();
out("JS embind sum_int 100000 iters: " + (b-a) + " msecs. result: " + r);
}
function _sum_float_benchmark_embind_js() {
var a = _emscripten_get_now();
var r = 0;
for(i = 0; i < 100000; ++i) {
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);
}
var b = _emscripten_get_now();
out("JS embind sum_float 100000 iters: " + (b-a) + " msecs. result: " + r);
}
function _move_gameobjects_benchmark_embind_js() {
var N = 10000;
var objects = [];
for(i = 0; i < N; ++i) {
objects.push(Module['create_game_object']());
}
var a = _emscripten_get_now();
for(i = 0; i < N; ++i) {
var t = objects[i]['GetTransform']();
var pos = Module['add'](t['GetPosition'](), [2, 0, 1]);
var rot = Module['add'](t['GetRotation'](), [0.1, 0.2, 0.3]);
t['SetPosition'](pos);
t['SetRotation'](rot);
t['delete']();
}
var b = _emscripten_get_now();
var accum = [0,0,0];
for(i = 0; i < N; ++i) {
var t = objects[i]['GetTransform']();
accum = Module['add'](Module['add'](accum, t['GetPosition']()), t['GetRotation']());
t['delete']();
objects[i]['delete']();
}
out("JS embind move_gameobjects " + N + " iters: " + (b-a) + " msecs. Result: " + (accum[0] + accum[1] + accum[2]));
}
function _pass_gameobject_ptr_benchmark_embind_js() {
var N = 100000;
var objects = [];
for(i = 0; i < N; ++i) {
objects.push(Module['create_game_object']());
}
var a = _emscripten_get_now();
for(i = 0; i < N; ++i) {
var t = Module['pass_gameobject_ptr'](objects[i]);
t['delete']();
}
var b = _emscripten_get_now();
for(i = 0; i < N; ++i) {
objects[i]['delete']();
}
out("JS embind pass_gameobject_ptr " + N + " iters: " + (b-a) + " msecs.");
}
function _call_through_interface0() {
var N = 1000000;
var obj = Module['Interface'].implement({
call0: function() {
}
});
var start = _emscripten_get_now();
Module['callInterface0'](N, obj);
var elapsed = _emscripten_get_now() - start;
out("C++ -> JS void through interface " + N + " iters: " + elapsed + " msecs.");
obj.delete();
}
function _call_through_interface1() {
var N = 1000000;
var obj = Module['Interface'].implement({
call1: function(s1, s2) {
return s1 + s2;
}
});
var start = _emscripten_get_now();
Module['callInterface1'](N, obj);
var elapsed = _emscripten_get_now() - start;
out("C++ -> JS std::wstring through interface " + N + " iters: " + elapsed + " msecs.");
obj.delete();
}
function _call_through_interface2() {
var N = 1000000;
var total = 0;
var obj = Module['Interface'].implement({
call_with_typed_array: function(ta) {
total += ta.length;
},
call_with_memory_view: function(ta) {
total += ta.length;
},
});
var start = _emscripten_get_now();
Module['callInterface2'](N, obj);
var elapsed = _emscripten_get_now() - start;
out("C++ -> JS typed array instantiation " + N + " iters: " + elapsed + " msecs.");
var start = _emscripten_get_now();
Module['callInterface3'](N, obj);
var elapsed = _emscripten_get_now() - start;
out("C++ -> JS memory_view instantiation" + N + " iters: " + elapsed + " msecs.");
obj.delete();
}
function _returns_val_benchmark() {
var N = 1000000;
var v = 1;
var start = _emscripten_get_now();
for(var i = 0; i < N; ++i) {
v = Module['returns_val'](v);
}
var elapsed = _emscripten_get_now() - start;
out("returns_val " + N + " iters: " + elapsed + " msecs");
}