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.