MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / main_loop

Function main_loop

test/benchmark/benchmark_ffis.cpp:60–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58
59int counter = 0;
60void __attribute__((noinline)) main_loop()
61{
62 tick_t t0 = tick();
63 for(int i = 0; i < 500000; ++i)
64 {
65#if BENCHMARK_FUNCTION_POINTER
66 counter += pointerToFunction(i, i+1, i+2);
67#else
68 counter += foreignFunctionThatTakesThreeParameters(i, i+1, i+2);
69#endif
70 }
71 tick_t t1 = tick();
72 allTicks[numRunsDone] = t1 - t0;
73 ++numRunsDone;
74 accumulatedTicks += t1 - t0;
75 printf("Run %d: %f msecs.\n", numRunsDone, (t1 - t0) * 1000.0 / ticks_per_sec());
76 if (numRunsDone >= totalRuns)
77 {
78 double accumulatedTimeMsecs = accumulatedTicks * 1000.0 / ticks_per_sec();
79 std::sort(allTicks, allTicks + totalRuns);
80 printf("Total: %d runs, avg. %f msecs per run. Counter: %d.\n", totalRuns, accumulatedTimeMsecs / totalRuns, counter);
81 printf("Best run: %f msecs.\n", allTicks[0] * 1000.0 / ticks_per_sec());
82 printf("1%% Best percentile: %f msecs. 1%% Worst percentile: %f msecs.\n", averageBestPercentileMsecs(0.01), averageWorstPercentileMsecs(0.01));
83 printf("5%% Best percentile: %f msecs. 5%% Worst percentile: %f msecs.\n", averageBestPercentileMsecs(0.05), averageWorstPercentileMsecs(0.05));
84 printf("10%% Best percentile: %f msecs. 10%% Worst percentile: %f msecs.\n", averageBestPercentileMsecs(0.10), averageWorstPercentileMsecs(0.10));
85 printf("25%% Best percentile: %f msecs. 25%% Worst percentile: %f msecs.\n", averageBestPercentileMsecs(0.25), averageWorstPercentileMsecs(0.25));
86 printf("50%% Best percentile: %f msecs. 50%% Worst percentile: %f msecs.\n", averageBestPercentileMsecs(0.50), averageWorstPercentileMsecs(0.50));
87 printf("75%% Best percentile: %f msecs. 75%% Worst percentile: %f msecs.\n", averageBestPercentileMsecs(0.75), averageWorstPercentileMsecs(0.75));
88 printf("95%% Best percentile: %f msecs. 95%% Worst percentile: %f msecs.\n", averageBestPercentileMsecs(0.95), averageWorstPercentileMsecs(0.95));
89 printf("100%% Best/Worst percentile (==average over all samples): %f msecs.\n", averageBestPercentileMsecs(1.00));
90
91 printf("Median run: %f msecs.\n", allTicks[totalRuns/2] * 1000.0 / ticks_per_sec());
92 printf("Total time: %f\n", accumulatedTimeMsecs);
93#ifdef __EMSCRIPTEN__
94 emscripten_cancel_main_loop();
95#endif
96 exit(0);
97 }
98}
99
100int main()
101{

Callers 1

mainFunction · 0.70

Calls 8

printfFunction · 0.85
ticks_per_secFunction · 0.85
tickFunction · 0.70
sortFunction · 0.50
exitFunction · 0.50

Tested by

no test coverage detected