On Apr 30, 2012, at 6:41 AM, Erik Cederstrand wrote:
>
> Can anyone explain to me why the dynamically linked version is significantly
> slower? What are the extra steps involved compared to a statically linked
> binary?
At the risk of dramatically over-simplifying….
When a static binary is started by the kernel, it does the following:
* Initializes some libc internals.
* Calls main.
When a dynamic binary is started by the kernel, it does the following:
* Initializes some libc internals.
* For every dynamic library referenced by this executable:
- loads the dynamic library into memory
- fixes up references
* Calls main
The process of loading the required libraries and fixing up references
can be quite time-consuming.
Cheers,
Tim
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"