Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TEST_CASE("geralds_benchmark")
- {
- BENCHMARK("cpp ref")
- {
- double sum = 1.0;
- for (int t = 0; t < 2000000; ++t) {
- sum += sqrt(double(t)) - sin(double(t));
- }
- return sum;
- };
- #ifdef __EMSCRIPTEN__
- BENCHMARK("js ref")
- {
- EM_ASM_DOUBLE({
- let sum = 1;
- for (let i = 0; i < 2000000; i++) {
- sum = sum + Math.sqrt(i) - Math.sin(i);
- }
- return sum;
- });
- };
- #endif
- BENCHMARK("cpp sqrt only")
- {
- double sum = 1.0;
- for (int t = 0; t < 2000000; ++t) {
- sum += sqrt(double(t));
- }
- return sum;
- };
- #ifdef __EMSCRIPTEN__
- BENCHMARK("js sqrt only")
- {
- EM_ASM_DOUBLE({
- let sum = 1;
- for (let i = 0; i < 2000000; i++) {
- sum = sum + Math.sqrt(i);
- }
- return sum;
- });
- };
- #endif
- BENCHMARK("cpp sin only")
- {
- double sum = 1.0;
- for (int t = 0; t < 5000000; ++t) {
- sum += sin(double(t));
- }
- return sum;
- };
- #ifdef __EMSCRIPTEN__
- BENCHMARK("js sin only")
- {
- EM_ASM_DOUBLE({
- let sum = 1;
- for (let i = 0; i < 5000000; i++) {
- sum = sum + Math.sin(i);
- }
- return sum;
- });
- };
- #endif
- BENCHMARK("cpp sin only with int64")
- {
- double sum = 1.0;
- for (int64_t t = 0; t < 2000000; ++t) {
- sum += sin(double(t));
- }
- return sum;
- };
- BENCHMARK("cpp sin starting with 123456789042")
- {
- double sum = 1.0;
- for (int64_t t = 123456789042; t < 123456789042ll + 2000000; ++t) {
- sum += sin(double(t));
- }
- return sum;
- };
- #ifdef __EMSCRIPTEN__
- BENCHMARK("js sin starting with 123456789042")
- {
- EM_ASM_DOUBLE({
- let sum = 1;
- for (let i = 123456789042; i < 123456789042 + 2000000; i++) {
- sum = sum + Math.sin(i);
- }
- return sum;
- });
- };
- #endif
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement