[FFmpeg-devel] PIC and YASM

Frank Barchard fbarchard
Tue Nov 10 01:26:41 CET 2009


On Mon, Nov 9, 2009 at 10:45 AM, Michael Niedermayer <michaelni at gmx.at>wrote:

> On Mon, Nov 09, 2009 at 10:12:12AM -0800, Frank Barchard wrote:
> [...]
> > An upside is that code can load faster, since there are no relocs,
>
> just curious, do you have a benchmark about this?
>

Sorry, no.. someone else evaluated that.  Best I can do is tell you the
current performance of loading ffmpeg on Vista
[9644] DLL loadtime  1.21 ms, avcodec-52.dll
[9644] DLL loadtime  0.33 ms, avformat-52.dll
[9644] DLL loadtime  0.05 ms, avutil-50.dll

>
> > and take
> > less memory by sharing dll's.
>
> and do you have some numbers about this?
>
260k per tab in Chromium


> PIC code is inherently larger and more complex, it does require
> additional indirection tables, ...
> thats a cost everyone who uses it, has to pay.
>
Is that for global / static variables that you write to?  For read only
data, you can use RIP.


> The win just happens for thouse who have  2 "dlls" loaded at the same time
> by 2 processes
> (this also implicates that libav* isnt linked statically like many do)
> and its just the pages that contain relocs that would differ
> and then only on OSs that cannot place these libs at the same location in
> both processes. (if the locations match, so do the relocs)
>

Correct.



More information about the ffmpeg-devel mailing list