Browse Prior Art Database

Mapping Imported Symbols at Link Time to Improve Load Time on the Office Systems/2 Operating System

IP.com Disclosure Number: IPCOM000116529D
Original Publication Date: 1995-Sep-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 53K

Publishing Venue

IBM

Related People

Stoodley, KA: AUTHOR

Abstract

A method for improving the load time of EXEcutables (EXEs) and Dynamic Libraries (DLLs) by enhancing the linkage editor is disclosed. A table of branch instructions that routes all calls to imported entry points. The result is one load-time relocation per imported unique entry point used in the executable or DLL instead of one load-time relocation per call site.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 57% of the total text.

Mapping Imported Symbols at Link Time to Improve Load Time on the
Office Systems/2 Operating System

      A method for improving the load time of EXEcutables (EXEs) and
Dynamic Libraries (DLLs) by enhancing the linkage editor is
disclosed.  A table of branch instructions that routes all calls to
imported entry points.  The result is one load-time relocation per
imported unique entry point used in the executable or DLL instead of
one load-time relocation per call site.

      On the OS/2* Operating System, all call sites within an EXE or
DLL that resolve to entry points external to that EXE or DLL have a
loader relocation associated with them to cause the address to get
resolved at load time (actually when the particular page on which the
call site resides is loaded).  There can be many of these sites in a
module and the lookup that the loader has to perform to resolve the
address can be very time-consuming.  It can involve searching tables
of names and comparing long strings.  A study of EXEs and DLLs
indicates that often there are many duplicate relocations to the same
external entry point.  This causes the loader to perform this
resolution many times for the same external entry point and degrades
load time.  Because of the way OS/2 Operating System is designed,
each time a page with one of these external references is loaded from
disk, the loader must track down and resolve the external references,
even if it has loaded this page before.  In an memory over...