Technical Perspective: Learning-Based Memory Allocation for C Server Workloads
Memory management spans the layers of computing platforms, ranging across hardware components that map logical addresses to physical memory locations, operating system components that track and control regions (usually in the form of "pages"), and run-time systems and languages that provide simple APIs and/or language constructs to process higher-level objects in terms of lower-level memory segments. An allocation ("new" or "malloc") is performed by placement--choosing a memory address heading a contiguous segment of (at least) a given size. A deallocation ("delete" or "free," perhaps initiated by garbage collectors or other mechanisms that detect unused objects) triggers bookkeeping to enable future memory reuse. Some languages and systems additionally support moving (copying) previously allocated objects to new locations, and automatically adjusting pointers to them accordingly. The primary objective of memory management is fitting all requested memory segments within a given space, or nearly equivalently, minimizing unusable gaps surrounding allocated objects.
Mar-18-2024, 20:10:45 GMT
- Technology: