[Ffmpeg-devel] Bindings benchmark on visibility patch
Diego 'Flameeyes' Pettenò
flameeyes
Fri Sep 22 21:00:40 CEST 2006
So, as people seems to want some concrete results produced by the visibility
patches I'm working on, I drafted up a parser for the LD_DEBUG=bindings
output, and counted the results (I'll make the script available in the next
days, give me time to make it something les specific than what I've hacked up
in 30 minutes of ruby hacking today).
The output comes out of a xine-ui playing an AVI with ISO MPEG-4 video stream,
and MP3 audio stream (both decoded with FFmpeg plugin). xine-lib CVS HEAD
with visibility enabled in that, too (and external FFmpeg from SVN of
course).
Without visibility patch:
libavcodec required 625 symbols (591 in itself)
libavutil required 10 symbols (3 in itself)
libpostproc required 9 symbols (none in itself)
libavcodec resolved 702 symbols (591 from itself)
libavutil resolved 13 symbols (3 from itself)
libpostproc resolved 3 symbols (none from itself)
-rwxr-xr-x 1 root root 2605648 22 set 19:32 /usr/lib/libavcodec.so
-rwxr-xr-x 1 root root 438528 22 set 19:32 /usr/lib/libavformat.so
-rwxr-xr-x 1 root root 17576 22 set 19:32 /usr/lib/libavutil.so
-rwxr-xr-x 1 root root 32368 22 set 19:32 /usr/lib/libpostproc.so
With visibility patch:
libavcodec required 105 symbols (71 in itself)
libavutil required 7 symbols (none in itself)
libpostproc required 10 symbols (none in itself)
libavcodec resolved 182 symbols (71 from itself)
libavutil resolved 10 symbols (none from itself)
libpostproc resolved 5 symbols (none from itself)
-rwxr-xr-x 1 root root 2558832 22 set 20:56 /usr/lib/libavcodec.so
-rwxr-xr-x 1 root root 426240 22 set 20:56 /usr/lib/libavformat.so
-rwxr-xr-x 1 root root 16984 22 set 20:56 /usr/lib/libavutil.so
-rwxr-xr-x 1 root root 32368 22 set 20:56 /usr/lib/libpostproc.so
I'm not sure why libpostproc required different amount of symbols, different
runs gives me values between 3 and 6, probably depends by which postproc xine
is trying to do depending on system load. The numbers for libavutil and
libavcodec are otherwise constants.
It *is* a good improvement in the amount of bindings required, and please
consider that xine does not use libavformat and I tried only with *one* video
per time; the advantage increase when you play more videos of different
formats.
The size difference is minimal, but consider that I built it with -Os on
itself, and that this isn't C++ where the visibility improves drastically the
size of DSOs.
--
Diego "Flameeyes" Petten? - http://farragut.flameeyes.is-a-geek.org/
Gentoo/Alt lead, Gentoo/FreeBSD, Video, AMD64, Sound, PAM, KDE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20060922/b917916a/attachment.pgp>
More information about the ffmpeg-devel
mailing list