docs/Writerside/topics/memory.md

Fri, 23 May 2025 12:44:24 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 23 May 2025 12:44:24 +0200
changeset 1327
ed75dc1db503
parent 1318
12fa1d37fe48
permissions
-rw-r--r--

make test-compile depend on both static and shared

the shared lib is not needed for the tests,
but when run with coverage, gcov will be confused
when outdated line information is available from
a previous shared build

1141
a06a2d27c043 create new page structure
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 # Memory Management
1170
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
2
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
3 With the `CxAllocator` interface UCX provides the possibility to use custom allocator functions for different purposes.
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
4 Many UCX functions support the use of specialized allocators or provide a second function suffixed with `_a`.
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
5
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
6 For convenience, functions that are not explicitly requesting an allocator - like e.g. `cx_strdup_a()` - also accept
1318
12fa1d37fe48 allow changing the cxDefaultAllocator - resolves #669
Mike Becker <universe@uap-core.de>
parents: 1210
diff changeset
7 `NULL` as an allocator, in which case the [default allocator](allocator.h.md#default-allocator) is used.
1170
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
8
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
9 Additionally, UCX also provides a [memory pool](mempool.h.md) implementation of the allocator interface.
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
10
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
11 > Although not part of the public API, UCX is also implementing the allocator interface
49cc0bbea6a9 add Memory Management Section description
Mike Becker <universe@uap-core.de>
parents: 1141
diff changeset
12 > in its own test suite: `CxTestingAllocator`. This allocator keeps track of memory allocations
1210
2ad0cf0f314b complete the printf documentation and fix code formatting
Mike Becker <universe@uap-core.de>
parents: 1170
diff changeset
13 > and deallocations with the goal to detect memory management errors.

mercurial