Optimizing the Performance of Dynamically-Linked Programs
W. Wilson Ho
Wei-Chau Chang
Lilian H. Leung
Silicon Graphics, Inc.
Abstract
Dynamically-linked programs in general do not perform as well as
statically-linked programs. This paper identifies three main
areas that account for the performance loss. First, symbols are
referenced indirectly and thus extra instructions are required.
Second, the overhead in run-time symbol resolution is signifi-
cant. Third, poor locality of functions in shared libraries and
data structures maintained by the run-time linker may result in
poor memory utilization. This paper presents new optimization
techniques we developed that address these three areas and sig-
nificantly improve the performance of dynamically-linked pro-
grams. Also, we provide measurements of the performance improve-
ment achieved. Most importantly, we show that all desirable fea-
tures of shared libraries can be achieved without sacrificing
performance.
To Become a USENIX Member, please see our Membership Information.