[Speex-dev] Performance and Optimization
Tom Grandgent
tom at grandgent.com
Mon Jun 15 08:16:12 PDT 2009
Why haven't you tried using release build with compiler optimizations?
It's quite possible that the performance picture could be substantially
different. You might end up wasting a lot of time if you do much
performance analysis or optimization on a debug build. Debug build
not only has no optimization - it also has extra checks that may have a
significant performance impact depending on the code.
If you want to profile with symbols, you know you can compile a release
build with symbols, right? The CodeAnalyst documentation describes
how to do that with Visual Studio. (I've done it.)
Tom
Greger Burman <greger at mobile-robotics.com> wrote:
>
> I have a question about the overall performance of Speex and what I can do
> to improve it. I'm running Speex Windows x86, Visual C++ EE compiler. I will
> say right away that I've only compiled debug so far and used no compiler
> optimizations at all.
> I use the uwb-mode, preprocessing, denoising and echo cancellation.
> I've noticed that speex consumes a lot of cpu resources. When I run this on
> a Celeron 2,6GHz I have to disable EC in order to not overload the cpu. Am I
> correct to assume that there are massive floating point calculations
> happening?
> I did a quick profile with CodeAnalyst and identified the most expensive
> functions as (in order):
> CPU Clocks, Function
> 4657, kiss_fft_stride
> 4456, speex_echo_cancellation
> 2494, split_cb_search_shape_sign
> 1490, fir_mem16
> 1419, speex_preprocess_run
> I'm looking for advise on how to boost the performance with as little code
> rewrite as possible. The architecture for release build will be SSE/SSE2
> capable.
> 1) Compiler optimizations: Recommended options?
> 2) SIMD. Is Speex written to take advantage of SIMD architectures? What must
> I do to take advantage of this?
> --
> Greger Burman
More information about the Speex-dev
mailing list