Path: blob/main/test/embind/embind.benchmark.js
4150 views
addToLibrary({1increment_counter_benchmark_js: function(N) {2var ctr = _get_counter();3var a = _emscripten_get_now();4for(i = 0; i < N; ++i) {5_increment_counter();6_increment_counter();7_increment_counter();8_increment_counter();9_increment_counter();10_increment_counter();11_increment_counter();12_increment_counter();13_increment_counter();14_increment_counter();15}16var b = _emscripten_get_now();17var ctr2 = _get_counter();18out("JS increment_counter " + N + " iters: " + (b-a) + " msecs. result: " + (ctr2-ctr));19},2021increment_class_counter_benchmark_embind_js: function(N) {22var foo = new Module['Foo']();23var a = _emscripten_get_now();24for(i = 0; i < N; ++i) {25foo['incr_class_counter']();26foo['incr_class_counter']();27foo['incr_class_counter']();28foo['incr_class_counter']();29foo['incr_class_counter']();30foo['incr_class_counter']();31foo['incr_class_counter']();32foo['incr_class_counter']();33foo['incr_class_counter']();34foo['incr_class_counter']();35}36var b = _emscripten_get_now();37out("JS embind increment_class_counter " + N + " iters: " + (b-a) + " msecs. result: " + foo['class_counter_val']());38foo['delete']();39},4041returns_input_benchmark_js: function() {42var a = _emscripten_get_now();43var t = 0;44for(i = 0; i < 100000; ++i) {45t += _returns_input(i);46t += _returns_input(i);47t += _returns_input(i);48t += _returns_input(i);49t += _returns_input(i);50t += _returns_input(i);51t += _returns_input(i);52t += _returns_input(i);53t += _returns_input(i);54t += _returns_input(i);55}56var b = _emscripten_get_now();57out("JS returns_input 100000 iters: " + (b-a) + " msecs. result: " + t);58},5960sum_int_benchmark_js: function() {61var a = _emscripten_get_now();62var r = 0;63for(i = 0; i < 100000; ++i) {64r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);65r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);66r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);67r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);68r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);69r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);70r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);71r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);72r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);73r += _sum_int(i, 2, 3, 4, 5, 6, 7, 8, 9);74}75var b = _emscripten_get_now();76out("JS sum_int 100000 iters: " + (b-a) + " msecs. result: " + r);77},7879sum_float_benchmark_js: function() {80var a = _emscripten_get_now();81var r = 0;82for(i = 0; i < 100000; ++i) {83r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);84r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);85r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);86r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);87r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);88r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);89r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);90r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);91r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);92r += _sum_float(i, 2, 3, 4, 5, 6, 7, 8, 9);93}94var b = _emscripten_get_now();95out("JS sum_float 100000 iters: " + (b-a) + " msecs. result: " + r);96},9798increment_counter_benchmark_embind_js: function (N) {99var ctr = _get_counter();100var a = _emscripten_get_now();101for(i = 0; i < N; ++i) {102Module['increment_counter']();103Module['increment_counter']();104Module['increment_counter']();105Module['increment_counter']();106Module['increment_counter']();107Module['increment_counter']();108Module['increment_counter']();109Module['increment_counter']();110Module['increment_counter']();111Module['increment_counter']();112}113var b = _emscripten_get_now();114var ctr2 = _get_counter();115out("JS embind increment_counter " + N + " iters: " + (b-a) + " msecs. result: " + (ctr2-ctr));116},117118returns_input_benchmark_embind_js: function() {119var a = _emscripten_get_now();120var t = 0;121for(i = 0; i < 100000; ++i) {122t += Module['returns_input'](i);123t += Module['returns_input'](i);124t += Module['returns_input'](i);125t += Module['returns_input'](i);126t += Module['returns_input'](i);127t += Module['returns_input'](i);128t += Module['returns_input'](i);129t += Module['returns_input'](i);130t += Module['returns_input'](i);131t += Module['returns_input'](i);132}133var b = _emscripten_get_now();134out("JS embind returns_input 100000 iters: " + (b-a) + " msecs. result: " + t);135},136137sum_int_benchmark_embind_js: function() {138var a = _emscripten_get_now();139var r = 0;140for(i = 0; i < 100000; ++i) {141r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);142r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);143r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);144r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);145r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);146r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);147r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);148r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);149r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);150r += Module['sum_int'](i, 2, 3, 4, 5, 6, 7, 8, 9);151}152var b = _emscripten_get_now();153out("JS embind sum_int 100000 iters: " + (b-a) + " msecs. result: " + r);154},155156sum_float_benchmark_embind_js: function() {157var a = _emscripten_get_now();158var r = 0;159for(i = 0; i < 100000; ++i) {160r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);161r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);162r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);163r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);164r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);165r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);166r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);167r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);168r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);169r += Module['sum_float'](i, 2, 3, 4, 5, 6, 7, 8, 9);170}171var b = _emscripten_get_now();172out("JS embind sum_float 100000 iters: " + (b-a) + " msecs. result: " + r);173},174175move_gameobjects_benchmark_embind_js: function() {176var N = 10000;177var objects = [];178for(i = 0; i < N; ++i) {179objects.push(Module['create_game_object']());180}181182var a = _emscripten_get_now();183for(i = 0; i < N; ++i) {184var t = objects[i]['GetTransform']();185var pos = Module['add'](t['GetPosition'](), [2, 0, 1]);186var rot = Module['add'](t['GetRotation'](), [0.1, 0.2, 0.3]);187t['SetPosition'](pos);188t['SetRotation'](rot);189t['delete']();190}191var b = _emscripten_get_now();192193var accum = [0,0,0];194for(i = 0; i < N; ++i) {195var t = objects[i]['GetTransform']();196accum = Module['add'](Module['add'](accum, t['GetPosition']()), t['GetRotation']());197t['delete']();198objects[i]['delete']();199}200201out("JS embind move_gameobjects " + N + " iters: " + (b-a) + " msecs. Result: " + (accum[0] + accum[1] + accum[2]));202},203204pass_gameobject_ptr_benchmark_embind_js: function() {205var N = 100000;206var objects = [];207for(i = 0; i < N; ++i) {208objects.push(Module['create_game_object']());209}210211var a = _emscripten_get_now();212for(i = 0; i < N; ++i) {213var t = Module['pass_gameobject_ptr'](objects[i]);214t['delete']();215}216var b = _emscripten_get_now();217218for(i = 0; i < N; ++i) {219objects[i]['delete']();220}221222out("JS embind pass_gameobject_ptr " + N + " iters: " + (b-a) + " msecs.");223},224225call_through_interface0: function() {226var N = 1000000;227var obj = Module['Interface'].implement({228call0: function() {229}230});231var start = _emscripten_get_now();232Module['callInterface0'](N, obj);233var elapsed = _emscripten_get_now() - start;234out("C++ -> JS void through interface " + N + " iters: " + elapsed + " msecs.");235obj.delete();236},237238call_through_interface1: function () {239var N = 1000000;240var obj = Module['Interface'].implement({241call1: function(s1, s2) {242return s1 + s2;243}244});245var start = _emscripten_get_now();246Module['callInterface1'](N, obj);247var elapsed = _emscripten_get_now() - start;248out("C++ -> JS std::wstring through interface " + N + " iters: " + elapsed + " msecs.");249obj.delete();250},251252call_through_interface2: function() {253var N = 1000000;254var total = 0;255var obj = Module['Interface'].implement({256call_with_typed_array: function(ta) {257total += ta.length;258},259call_with_memory_view: function(ta) {260total += ta.length;261},262});263264var start = _emscripten_get_now();265Module['callInterface2'](N, obj);266var elapsed = _emscripten_get_now() - start;267out("C++ -> JS typed array instantiation " + N + " iters: " + elapsed + " msecs.");268269var start = _emscripten_get_now();270Module['callInterface3'](N, obj);271var elapsed = _emscripten_get_now() - start;272out("C++ -> JS memory_view instantiation" + N + " iters: " + elapsed + " msecs.");273obj.delete();274},275276returns_val_benchmark: function() {277var N = 1000000;278var v = 1;279var start = _emscripten_get_now();280for(var i = 0; i < N; ++i) {281v = Module['returns_val'](v);282}283var elapsed = _emscripten_get_now() - start;284out("returns_val " + N + " iters: " + elapsed + " msecs");285},286287});288289290