[FFmpeg-devel] [PATCH] avcodec/bitstream: replace qsort with AV_QSORT
gajjanag at mit.edu
Sun Oct 18 15:26:16 CEST 2015
On Sat, Oct 17, 2015 at 10:25 PM, Michael Niedermayer
<michael at niedermayer.cc> wrote:
> On Sat, Oct 17, 2015 at 09:30:01PM -0400, Ganesh Ajjanagadde wrote:
>> Commit 3a0a2f33a6c955823fa4fb12c0b49cd29a496659 claims large performance
>> advantages for AV_QSORT over libc's qsort. The reason is that I suspect
>> that libc's qsort (at least on non LTO builds, like the typical FFmpeg config)
>> can't inline the comparison callback:
>> AV_QSORT has two things going for it:
>> 1. The guaranteed inlining of qsort itself. This yields a negligible
>> boost that may be ignored.
>> 2. The more serious possibility of potentially allowing the comparison
>> function to be inlined - this is likely responsible for the large boosts
>> There is a comment explaining that this is a place that could use some
>> performance improvement. Thus AV_QSORT is used to achieve that.
>> Benchmarks deemed unnecessary due to existing claims about AV_QSORT.
>> Tested with FATE.
>> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
>> libavcodec/bitstream.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
Pushed, thanks. Will create another patch to replace the remainder of
the qsort with AV_QSORT. Finally, an (optional) patch adding
inline/av_always_inline to the compare functions - otherwise (at least
on -O2, other compilers maybe) the compare functions won't be inlined.
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> The educated differ from the uneducated as much as the living from the
> dead. -- Aristotle
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
More information about the ffmpeg-devel