Procedure library overview
- Last Updated: February 11, 2026
- 4 minute read
- OpenEdge
- Version 13.0
- Documentation
OpenEdge provides two types of procedure libraries: standard and memory-mapped. A standard procedure library contains r-code that executes in local memory. A memory-mapped procedure library contains r-code that executes in shared memory. The r-code files that you place in a library are called members.
When you execute a member from either a standard procedure library in local memory or a memory-mapped procedure library in shared memory, you gain the following advantages:
- Faster access to r-code
- Fewer file open and close operations
- Less I/O to temporary files
When you execute a member from a memory-mapped procedure library in shared memory, you gain the following additional advantages:
- Even faster access to r-code
- Requires less memory because multiple users access the same r-code segments in shared memory
When loading and executing r-code from operating system files in a directory, OpenEdge must open and close each file individually. When loading and executing r-code from standard or memory-mapped procedure libraries, OpenEdge opens only one file—the library itself—to access all of the members in the library.
OpenEdge opens a library the first time you run a member from the library. The library stays open until the end of your OpenEdge session or until you remove the library from the PROPATH. For more information about how standard and memory-mapped libraries interact with PROPATH during an OpenEdge session, see Libraries and PROPATH.
For information about monitoring and optimizing r-code execution during a client session, see ABL Client Deployment Overview. For more information about r-code structure and execution, see R-code Features and Functions.
Load r-code from a file
The following image shows the load operation when executing r-code from an operating system file.

As shown in the above figure, when a client process accesses r-code from an operating system file, OpenEdge loads the r-code into local memory for that individual client and executes the segments from local memory. OpenEdge swaps segments to the r-code swap file, and reloads segments from the r-code swap file, as necessary.
Load r-code from a standard procedure library
After locating r-code in a standard procedure library, OpenEdge loads the member into local memory.
The following figure shows the load operation when executing r-code from a standard procedure library.

As shown in the above figure, when a client process accesses a member from
a standard procedure library, OpenEdge loads the member into local memory for that
individual client and executes the segments from local memory. OpenEdge does not swap
segments to and from the r-code swap file unless you specify the PROLIB Swap (-pls) startup parameter. By default, OpenEdge reloads segments
from the open library in local memory.
Load r-code from a memory-mapped procedure library
After locating a member in a memory-mapped procedure library, OpenEdge loads the member by mapping the library in shared memory where one or more clients can access it.
The following image shows the load operation when executing a member from a memory-mapped procedure library.

-pls) startup parameter with memory-mapped procedure libraries, OpenEdge ignores
it.