Kbase P18099: Types of Memory Explained
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/15/2008 |
|
Status: Unverified
GOAL:
Types of Memory Explained
FACT(s) (Environment):
Progress 9.1x
FIX:
Types of memory overview.
Static Memory
Old style objects that come and go with the procedure.p.
The memory where statically allocated objects are stored is sometimes known as static memory. In the context of garbage collection, the term is used mean memory used to store static objects.
Stack Memory
Stack allocation means run-time allocation and deallocation of storage in last-in/first-out order.
Typically, stack allocation is performed on top of the main stack, but one can have a separate data stack for this purpose as well.
Allocation and deallocation are typically fast, since simply adding or subtracting the size of the block from the stack pointer can do them.
Using only stack allocation, without heap allocation, is somewhat restrictive, as only objects whose size is known at compile-time can be returned from a procedure.
 Temporary memory provided by the ?s Client Startup parameter. Use Stack Size (-s) to change the size of the stack (an internal memory area used by Progress program modules). Increase the stack size if one of the following messages appears:
SYSTEM ERROR: stkpush: stack overflow. Increase -s parameter.
SYSTEM ERROR: stkditem: stack overflow. Increase -s parameter.
Stack overflow errors are most likely when data definitions are loaded for very large tables or use recursive procedures.
 Used to hold temporary copies of data in their way from the DB or to the screen.
 Used during computation of expressions.
Widget Pools
 Unnamed and named pools.
 Unnamed are scoped to the procedure in which they are defined.
 Named are not scoped.
Dynamic Memory
Dynamic RAM requires periodic refreshing to avoid losing its contents (as opposed to static memory, the contents of which are preserved without any need for refreshing). The refreshing is performed by additional "refresh hardware" usually external to the dynamic RAM package itself, sometimes by the main CPU.
 Allocated as requested by the users.
 Contained in a pool (session unnamed or user created).
External Memory
 ActiveX, COM-HANDLEs and DLLs
Memory Pointers.
Pointer data types represent a reference to an object or a location.
Pointers may be specialised by the type of the object referred to.