[flac-dev] Performance checks

Miroslav Lichvar mlichvar at redhat.com
Fri May 31 03:04:16 PDT 2013


On Wed, May 29, 2013 at 04:08:57PM +0200, Martijn van Beurden wrote:
> I was surprised to see that the Windows compile on wine actually 
> outperformed the native Linux one. Probably GCC 4.6 optimized a little 
> better or something very weird is going on in wine, I don't know. The 
> assembly optimizations work very well on encoding, but actually slow 
> things down when decoding. The difference is not very large however.

In a quick test with a pre 4.8 gcc on a Core 2 CPU I see a small
improvement in decoding speed with assembly optimizations turned on,
but I think the difference used to be larger. Perhaps the compilers
got better or MMX is slower relative to normal code on current CPUs.

Disabling the FLAC__bitreader_read_rice_signed_block_asm_ia32_bswap
function seems to help a bit. (there is an #if disabling the function
with comment "OPT: not clearly faster, needs more testing" in the
src/libFLAC/stream_decoder.c file)

Here is the relative decoding speed with -5 and -8:
			-5		-8
no asm			99.0%		97.0%
asm			100.0%		100.0%
asm (no ia32_bswap)	102.7%		102.7%

I think we should drop that assembly function as the C
version seems to be faster now.

Can anyone confirm this?

Thanks,

-- 
Miroslav Lichvar


More information about the flac-dev mailing list