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.
 


Download the full text of this paper in ASCII (42,437 bytes) and POSTSCRIPT (90,607 bytes) form.

To Become a USENIX Member, please see our Membership Information.