Re: [RFC] Un-staticise the toolchain

From: Tim Kientzle <tim_at_kientzle.com>
Date: Mon, 30 Apr 2012 22:52:35 -0700
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
Received on Tue May 01 2012 - 03:52:56 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:26 UTC