Skip to content

Introduce Warm-up Phase for Dudect Measurement #289

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

HeatCrab
Copy link
Contributor

@HeatCrab HeatCrab commented Apr 4, 2025

A warm-up step was added to the measurement function to discard the first batch of data, inspired by a privately implemented earlier version that passed tests for queue-related functions. This follows the approach described in the Dudect paper, which skips initial measurements to improve timing stability., potentially mitigating factors like cache misses or allocation delays. Unlike the author's GitHub implementation, which dynamically checks the percentiles array state for each call, a static boolean is used here to mark the first execution within a single test run, as this suits the fixed iteration structure of the testing loop. Tests using queue insertion and removal functions showed no notable difference in constant-time behavior with or without this step after memory leaks were fixed, but it is retained for potential improvements in t-test precision under different test conditions.

Change-Id: Ieec138264fdd8d087142cdf3c3e9f961f521e80b

A warm-up step was added to the measurement function to discard the
first batch of data, inspired by a privately implemented earlier
version that passed tests for queue-related functions. This follows the
approach described in the Dudect paper, which skips initial measurements
to improve timing stability., potentially mitigating factors like cache
misses or allocation delays. Unlike the author's GitHub implementation,
which dynamically checks the percentiles array state for each call, a
static boolean is used here to mark the first execution within a single
test run, as this suits the fixed iteration structure of the testing
loop. Tests using queue insertion and removal functions showed no
notable difference in constant-time behavior with or without this step
after memory leaks were fixed, but it is retained for potential
improvements in t-test precision under different test conditions.

Change-Id: Ieec138264fdd8d087142cdf3c3e9f961f521e80b
@jserv
Copy link
Contributor

jserv commented Apr 7, 2025

The commit messages were misleading:

  • inspired by a privately implemented earlier version that passed tests => What's that?
  • Dudect paper => Use the fully-qualified form if you want to refer to a paper.
  • the author's GitHub implementation => You should put the name of the author.
  • potential improvements in t-test precision under different test conditions. => How come?

Clarify them before reviewing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants