With the dynamic linking capabilities of OS/2, it is possible to partition an application into a number of executable modules. A single base program may be augmented by one or more dynamic link libraries. Such an approach has a number of advantages:
Applications written for the Workplace Shell should be partitioned in this manner. Since the shell displays all objects on the desktop at system initialization, all applications must potentially be loaded at this time. This can dramatically increase the time required for system initialization, along with the overall memory requirements of the system.
These requirements may be significantly reduced by having only the minimum code (that is, the code required to accept and identify messages) loaded at application startup, and placing all processing function into dynamic link libraries that are loaded only when one of their entry points is called.
Application developers must give careful consideration to correct partitioning of the application. Groups of functions that are interdependent and which call one another, or are typically called in close sequence should be placed in a single DLL module. Functions that are independent of one another should be placed in separate DLLs. This approach will minimize the load time and memory requirements of the application.