diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-07 08:54:04 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-07 08:54:04 +0100 |
| commit | da16d32f1e1adab7e461cd228e5fcecc60e1a41c (patch) | |
| tree | 285da93841c2e00f49c9f98e45350d2dcad9b6ce | |
| parent | f28aef533e039def7c356ecac2dd0f45c6114209 (diff) | |
docs: Add Task #67 for DCT/FFT performance benchmarking
Adds low-priority task to measure and compare DCT/IDCT performance:
**Goal:** Quantify performance differences between implementations
- Reference O(N²) naive DCT/IDCT
- Current FFT-based O(N log N) implementation
- Future SIMD-optimized versions (when written)
**Location:** test_dct.cc or test_fft.cc
**Measurements:**
- Average time per transform (microseconds)
- Throughput (transforms per second)
- Speedup factor vs reference
- Multiple test sizes (128, 256, 512, 1024) for scaling analysis
**Implementation:**
- std::chrono::high_resolution_clock for timing
- 1000+ iterations to reduce noise
- Min/avg/max statistics
- Guarded with !STRIP_ALL for zero production impact
**Benefits:**
- Validate FFT speedup claims (O(N log N) vs O(N²))
- Quantify SIMD optimization gains when implemented
- Detect performance regressions in CI
**Priority:** Very Low (informational, not blocking any features)
This will be useful when optimizing audio performance in Phase 2.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
| -rw-r--r-- | TODO.md | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -307,6 +307,26 @@ This file tracks prioritized tasks with detailed attack plans. - **Benefits**: Non-programmers can edit tempo, easier iteration, version control friendly - **Priority**: Low (current hardcoded approach works, but less flexible) +- [ ] **Task #67: DCT/FFT Performance Benchmarking**: Add timing measurements to audio tests + - **Goal**: Compare performance of different DCT/IDCT implementations + - **Location**: Add timing code to `test_dct.cc` or `test_fft.cc` + - **Measurements**: + - Reference IDCT/FDCT (naive O(N²) implementation) + - FFT-based DCT/IDCT (current O(N log N) implementation) + - Future x86_64 SIMD-optimized versions (when implemented) + - **Output Format**: + - Average time per transform (microseconds) + - Throughput (transforms per second) + - Speedup factor vs reference implementation + - **Test Sizes**: DCT_SIZE=512 (production), plus 128, 256, 1024 for scaling analysis + - **Implementation**: + - Use `std::chrono::high_resolution_clock` for timing + - Run each test 1000+ iterations to reduce noise + - Report min/avg/max times + - Guard with `#if !defined(STRIP_ALL)` to avoid production overhead + - **Benefits**: Quantify FFT speedup, validate SIMD optimizations, identify regressions + - **Priority**: Very Low (nice-to-have for future optimization work) + ### Developer Tools - [ ] **Task #66: External Asset Loading for Debugging**: mmap() asset files instead of embedded data - **Current**: All assets embedded in `assets_data.cc` (regenerate on every asset change) |
