static void perf_cost(void) { const unsigned long maxcycles = 40000000; unsigned long i = 0; double duration; unsigned long ops; Coroutine *co; g_test_timer_start(); while (i++ < maxcycles) { co = qemu_coroutine_create(perf_cost_func); qemu_coroutine_enter(co, &i); qemu_coroutine_enter(co, NULL); } duration = g_test_timer_elapsed(); ops = (long)(maxcycles / (duration * 1000)); g_test_message("Run operation %lu iterations %f s, %luK operations/s, " "%luns per coroutine", maxcycles, duration, ops, (unsigned long)(1000000000 * duration) / maxcycles); }