-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
async PERF_TEST always returns 0 cycles #2587
Comments
travisdowns
added a commit
to travisdowns/seastar
that referenced
this issue
Dec 17, 2024
Simplify and coroutinize main loop. This reduces the duplicated portion in the main loop which handles the 4 compile-time cases of {void returning, size_t returning} x {sync, async} test case methods. We duplicate only as much as need to keep the main loop efficient but try to share the remainder. We can also remove a lot of boilerplate which is no longer needed in C++. This fixes scylladb#2587 because the underlying bug there was a change in one of the duplicated sections but not the other. Performance should be similar after this change: any benchmark that does substantial work won't see a change. Very short benchmarks are sensitive to the work in the main loop and this is slightly better in some cases and slightly worse in others. This was evaluated with perf_tests_perf benchmark in this series. We delegate the choice of whether to yield in the benchmark not to the code under test (in the future returning case). Fixes scylladb#2587.
travisdowns
added a commit
to travisdowns/seastar
that referenced
this issue
Dec 18, 2024
Simplify and coroutinize main loop. This reduces the duplicated portion in the main loop which handles the 4 compile-time cases of {void returning, size_t returning} x {sync, async} test case methods. We duplicate only as much as need to keep the main loop efficient but try to share the remainder. We can also remove a lot of boilerplate which is no longer needed in C++. This fixes scylladb#2587 because the underlying bug there was a change in one of the duplicated sections but not the other. Performance should be similar after this change: any benchmark that does substantial work won't see a change. Very short benchmarks are sensitive to the work in the main loop and this is slightly better in some cases and slightly worse in others. This was evaluated with perf_tests_perf benchmark in this series. We delegate the choice of whether to yield in the benchmark not to the code under test (in the future returning case). Fixes scylladb#2587.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
If you write a
PERF_TEST
(or any other variation likePERF_TEST_F/C
etc) whose testing method is async, the "cycles" column is always zero.The text was updated successfully, but these errors were encountered: