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 _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"