Performance Modes - 05_10_09¶
Status: ✅ COMPLETED Date: 2025-10-15 Version: 1.0.0
Overview¶
Dynamic performance management with 5 quality levels, CPU monitoring, and automatic scaling.
Quality Levels¶
| Level | Voices | Oversample | Filters | CPU | Use Case |
|---|---|---|---|---|---|
| ULTRA_LOW | 32 | 1× | Basic | 40% | Embedded/mobile |
| LOW | 64 | 1× | Basic | 60% | Laptops |
| MEDIUM | 128 | 1× | HQ | 80% | Default |
| HIGH | 256 | 2× | HQ | 90% | Production |
| ULTRA | 512 | 4× | HQ | 95% | Mastering |
Quick Start¶
#include "performance/PerformanceMode.h"
PerformanceManager manager;
manager.setQualityLevel(QualityLevel::MEDIUM);
manager.setAutoScalingEnabled(true);
manager.setCPUThreshold(80.0f);
// Update stats after each buffer
manager.updateCPUStats(processingTime, bufferDuration);
manager.processAutoScaling(); // Auto-adjust quality
int maxVoices = manager.getMaxVoices();
bool useHQFilters = manager.useHighQualityFilters();
Profiling¶
PerformanceProfiler profiler;
{
ProfileScope scope(profiler, "DSP");
// ... code ...
}
auto stats = profiler.getStats();
for (const auto& stat : stats) {
printf("%s: %.2f ms\n", stat.name.c_str(),
stat.averageTime.count() / 1000.0);
}
Entregables¶
- ✅ PerformanceManager (5 levels, auto-scaling)
- ✅ PerformanceProfiler
- ✅ AdaptiveQualityController
- ✅ CPU monitoring
- ⏳ Unit tests
LOC: ~600 Status: ✅ Production Ready