perf!: remove per-call allocation from the real FFT - #6
Merged
Conversation
- The real FFT owns its working buffer, allocated once at construction, so neither transform direction allocates per call and Aec::process performs no heap allocation in steady state. Output samples are byte-identical to 0.1.0. - tracing becomes an off-by-default cargo feature. A default build has no tracing dependency and the diagnostic emit sites compile to nothing. A consumer that relies on the events enables features = ["tracing"]. - The crate-internal reference canceller and the golden-pair suite that validates the pipeline against it move behind a new internal-tests cargo feature and are excluded from the published package. CI runs both feature configurations. - delay_hint_ms documents that the offset is measured from the reference frontier the caller's own feeding establishes, and that a hint longer than that offset cancels nothing without reporting an error. feed_reference documents the diagnostic for a reference at a rate other than the configured one, and that automatic acquisition needs broadband far-end material. - Version 0.2.0, with the install line and changelog updated.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Version 0.2.0. Output samples are byte-identical to 0.1.0.
The real FFT owns its working buffer, allocated once at construction, so neither transform direction allocates per call and Aec::process performs no heap allocation in steady state.
tracing becomes an off-by-default cargo feature. A default build has no tracing dependency and the diagnostic emit sites compile to nothing. A consumer that relies on the events enables features = ["tracing"].
The crate-internal reference canceller and the golden-pair suite that validates the pipeline against it move behind a new internal-tests cargo feature and are excluded from the published package. CI runs both feature configurations.
Documentation. delay_hint_ms records that the offset is measured from the reference frontier the caller's own feeding establishes, and that a hint longer than that offset cancels nothing without reporting an error. feed_reference records the diagnostic for a reference at a rate other than the configured one, and that automatic acquisition needs broadband far-end material.