[opus] [RFC PATCH v1 1/2] Optimize repeated calls to opus_select_arch

Timothy B. Terriberry tterribe at xiph.org
Tue Jan 20 11:05:07 PST 2015

Viswanath Puttagunta wrote:
> Instead, just optimize the opus_select_arch() such that only
> the first call to it takes more time, but subsequent calls to
> it are much faster.

This has been suggested before, but it is a bad idea. The patch posted 
below is not thread-safe or even re-entrant. You can argue that the 
results should always be the same, so it won't matter, but this is quite 
hard to prove given the actual freedom a compiler has [1], and the races 
will get reported as errors by automated race detection tools (such as 
we use on Firefox), making the lives harder of everyone who has to deal 
with that.

Fixing this requires introducing dependencies on threading libraries, 
which are platform-specific (and may not even be available on some 
platforms) and will make you lose performance.

So really I think the better solution is to modify the function 
signatures, even if it looks like more typing.

[1] http://hboehm.info/boehm-hotpar11.pdf

More information about the opus mailing list