SAP SE
HIGH-PERFORMANCE MEMORY ALLOCATOR

Last updated:

Abstract:

A system and method of allocating memory to a thread of a multi-threaded program are disclosed. A method includes determining one or more thread-local blocks of memory that are available for the thread, and generating a count of the available one or more thread-local blocks for a thread-local freelist. If a thread-local block is available, allocating one block of the one or more thread-local blocks to the thread and decrementing the count in the thread-local freelist. When the count is zero, accessing a global freelist of available blocks of memory to determine a set of available blocks represented by the global freelist. Then, the set of available blocks are allocated from the global freelist to the thread-local freelist by copying one or more free block pointers of the global freelist to a thread-local state of the thread. Blocks can also be deallocated.

Status:
Application
Type:

Utility

Filling date:

2 Apr 2019

Issue date:

8 Oct 2020