diff options
author | Jukka Jylänki <jujjyl@gmail.com> | 2013-05-09 16:43:06 +0300 |
---|---|---|
committer | Chad Austin <chad@imvu.com> | 2013-05-17 12:58:08 -0700 |
commit | 4e616121d182fa478d845393e7363b3c0a5e3452 (patch) | |
tree | 0c80f3c368f9018a404012391c799e4e31b9add8 | |
parent | 0ef792b006a82a0071fa70f83661dbf0ef04b18d (diff) |
Add new benchmark for emscripten::val handling.
-rw-r--r-- | tests/embind/embind.benchmark.js | 11 | ||||
-rw-r--r-- | tests/embind/embind_benchmark.cpp | 10 |
2 files changed, 21 insertions, 0 deletions
diff --git a/tests/embind/embind.benchmark.js b/tests/embind/embind.benchmark.js index a21b8392..3669bc28 100644 --- a/tests/embind/embind.benchmark.js +++ b/tests/embind/embind.benchmark.js @@ -272,3 +272,14 @@ function _call_through_interface2() { Module.print("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; + Module.print("returns_val " + N + " iters: " + elapsed + " msecs"); +} diff --git a/tests/embind/embind_benchmark.cpp b/tests/embind/embind_benchmark.cpp index d6aa950f..5ae9a6be 100644 --- a/tests/embind/embind_benchmark.cpp +++ b/tests/embind/embind_benchmark.cpp @@ -51,6 +51,13 @@ extern void pass_gameobject_ptr_benchmark_embind_js(); extern void call_through_interface0(); extern void call_through_interface1(); extern void call_through_interface2(); + +extern void returns_val_benchmark(); +} + +emscripten::val returns_val(emscripten::val value) +{ + return emscripten::val(value.as<unsigned>() + 1); } class Vec3 @@ -281,6 +288,8 @@ EMSCRIPTEN_BINDINGS(benchmark) function("callInterface1", &callInterface1); function("callInterface2", &callInterface2); function("callInterface3", &callInterface3); + + function("returns_val", &returns_val); } void __attribute__((noinline)) emscripten_get_now_benchmark(int N) @@ -492,4 +501,5 @@ int main() call_through_interface0(); call_through_interface1(); call_through_interface2(); + returns_val_benchmark(); } |