[ecasound] performance optimizations, liboil

From: Kai Vehmanen <kvehmanen@email-addr-hidden>
Date: Sun Apr 05 2009 - 19:15:09 EEST

Hello all,

recent git commits introduce optional support for liboil ([1] - a library
for optimizing inner loops with CPU specific extensions like SSE, Altivec
and NEON). For now, one needs to enable liboil explicitly with
"--enable-liboil". But if no major issues are found, I'll change the
default to enabled (it will still be possible to build libecasound without
liboil). Many distributions ship liboil already (as its used by
e.g. gstreamer and pulseaudio), so most people will anyways have it

In addition to liboil usage, I've also made some other "inner loop
optimizations" to the codebase. It should be noted though, that even with
all optimizations enabled, the overall performance impact is not that
great. In most/majority of use scenarios, ecasound performance is not CPU
bound (and even when CPU-bound, the inner loops are usually in external
libraries - e.g. LADSPA plugins, libsamplerate, etc). But some CPU time
is still saved, and this never hurts.

I've also added a manual test app (eca_loop_bench) for performance
benchmarking as well as some new functional unit tests (to make sure the
optimizations work correctly).

[1] http://liboil.freedesktop.org/

Ecasound-list mailing list
Received on Sun Apr 5 19:49:52 2009

This archive was generated by hypermail 2.1.8 : Sun Apr 05 2009 - 19:49:52 EEST