OpenEdge provides two types of procedure libraries: standard and memory-mapped. A standard library contains r-code that executes in local memory. A memory-mapped library contains r-code that executes in shared memory. The r-code files that you place in a library are called members.
Note: Whether the source code is an ABL procedure or ABL class, it compiles into r-code. For the purposes of this topic, procedure and class files are equivalent.
When you execute a member from either a standard library in local memory or a memory-mapped 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 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 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 Librariesand PROPATH.