Quote:
Actually this whole cache thing doesn't make much sense anymore since I 'removed' Natural Dynamics. The only thing that uses a lot of memory is Multiband (because it separates the data into 10 bands per channel = 20 * 4096 floats = 320 kB, plus extra buffers for other data which might mean a doubling of this number).
The declipper and clipper however do things with very little memory (one channel at once, and only a few buffers = a few times 4096 floats = a few times 16 kB).
I'm actually starting to wonder if it could be something else. For example:
- Code cache vs. data cache.
- Cache lines issue (for example, 64 kB multiples of addresses cannot be in the cache simultaneously. This can give HUGE performance effects.)
Could someone who has cache problems do the following tests?
1. Try what happens if you turn Multiband off.
2. Try what happens if you lower the latency by one step (or multiple steps). Each step causes a reduction of memory usage by half! (The memory will stay allocated, but it's no longer used, hence no longer placed in the cache).
If lowering the latency does NOT help, the issue is probably code cache instead of data cache. If it's that I can try building a version that's more optimized for size than for performance.
These tests are with the DSP version and Winamp. With all of the tests, the vast majority of the CPU % was noted as coming from the in_mp3.dll instantiated thread of dsp_stereo_tool.dll.
Also, note that by "Multiband ON", I'm meaning just loading my standard preset with everything I normally have on. What I normally have on is:
Stereo Image: Azimuth correction and Stereo Boost (without the reverb option)
AGC (3-band, no bass AGC)
Multiband
Bass Boost
Noise Gate
Bandpass (Phase Linear Highpass, both options checked)
Singleband limiter
Final Limiter's volume increase
Loudness (Dirty bass, Improved Bass, Strict, Deep Bass, deesser, no AEHP, CPU shortcuts checked)
Hard Limit
4096 samples:
Normal Preset with
GUI UP = 56-65%
Normal Preset with
GUI in System Tray = 43-52%
Multiband ON with
AGC off and GUI UP = 43 - 55%
Multiband ON with
AGC off and GUI in System Tray = 36-40%
Multiband OFF with
GUI UP = 32-38%
Multiband OFF with
GUI in System Tray = same
Multiband and AGC OFF = 34-38% (no change in GUI UP vs. Tray)
2048 samples:
Normal Preset with GUI UP = 55-62%
Normal Preset with GUI in System Tray =
15-22%
The other tests show similar reductions, with the final test of AGC OFF and Multiband OFF = 8-12%, GUI UP or in Tray
Per our PM discussion, you felt the data collection routines for the GUI updating could be expensive. I'd suggest looking into that, as the most significant reduction was when I lowered the number of samples
AND put the GUI to the tray.