A class for managing memory segments within a memory allocation.
More...
#include <MemoryAllocation.h>
|
| | MemoryAllocation (void *ptr, size_t size, size_t alignment=1) |
| |
| template<class T > |
| std::pair< T *, size_t > | Alloc (size_t size) |
| |
| std::pair< void *, size_t > | Alloc (size_t size) |
| |
| std::pair< void *, size_t > | AllocLargestSegment () |
| | Returns the largest free segment. More...
|
| |
| template<class T > |
| void | Free (const std::pair< T *, size_t > &segment) |
| | Frees a previously returned segment. More...
|
| |
| void | Free (const std::pair< void *, size_t > &segment) |
| | Frees a previously returned segment. More...
|
| |
| size_t | MaxUsed () const |
| | Returns the peak memory usage in bytes. More...
|
| |
| size_t | Alignment () const |
| | Returns the alignment in bytes. More...
|
| |
| const std::vector< std::pair< void *, size_t > > & | FreeSegments () const |
| | Returns the list of free segments. More...
|
| |
| void | PrintFreeSegments () const |
| | Prints all free segments. Meant for debugging. More...
|
| |
|
| template<class T > |
| static void | PrintSegment (const std::pair< T *, size_t > &s) |
| | Prints the segment. Meant for debugging. More...
|
| |
A class for managing memory segments within a memory allocation.
◆ MemoryAllocation()
| open3d::ml::impl::MemoryAllocation::MemoryAllocation |
( |
void * |
ptr, |
|
|
size_t |
size, |
|
|
size_t |
alignment = 1 |
|
) |
| |
|
inline |
Creates a MemoryAllocation object that manages memory segments within a memory allocation.
- Parameters
-
| ptr | Pointer to the beginning of the memory. |
| size | Size of the memory. |
| alignment | The alignment for returned segments. |
◆ Alignment()
| size_t open3d::ml::impl::MemoryAllocation::Alignment |
( |
| ) |
const |
|
inline |
Returns the alignment in bytes.
◆ Alloc() [1/2]
template<class T >
| std::pair<T*, size_t> open3d::ml::impl::MemoryAllocation::Alloc |
( |
size_t |
size | ) |
|
|
inline |
Returns a memory segment with size for type T. Returns the pointer and the size in number of elements T. May return the pair (nullptr,0) if the allocation is not possible.
◆ Alloc() [2/2]
| std::pair<void*, size_t> open3d::ml::impl::MemoryAllocation::Alloc |
( |
size_t |
size | ) |
|
|
inline |
Returns a memory segment with size in bytes. May return the pair (nullptr,0) if the allocation is not possible.
◆ AllocLargestSegment()
| std::pair<void*, size_t> open3d::ml::impl::MemoryAllocation::AllocLargestSegment |
( |
| ) |
|
|
inline |
Returns the largest free segment.
◆ Free() [1/2]
template<class T >
| void open3d::ml::impl::MemoryAllocation::Free |
( |
const std::pair< T *, size_t > & |
segment | ) |
|
|
inline |
Frees a previously returned segment.
◆ Free() [2/2]
| void open3d::ml::impl::MemoryAllocation::Free |
( |
const std::pair< void *, size_t > & |
segment | ) |
|
|
inline |
Frees a previously returned segment.
◆ FreeSegments()
| const std::vector<std::pair<void*, size_t> >& open3d::ml::impl::MemoryAllocation::FreeSegments |
( |
| ) |
const |
|
inline |
Returns the list of free segments.
◆ MaxUsed()
| size_t open3d::ml::impl::MemoryAllocation::MaxUsed |
( |
| ) |
const |
|
inline |
Returns the peak memory usage in bytes.
◆ PrintFreeSegments()
| void open3d::ml::impl::MemoryAllocation::PrintFreeSegments |
( |
| ) |
const |
|
inline |
Prints all free segments. Meant for debugging.
◆ PrintSegment()
template<class T >
| static void open3d::ml::impl::MemoryAllocation::PrintSegment |
( |
const std::pair< T *, size_t > & |
s | ) |
|
|
inlinestatic |
Prints the segment. Meant for debugging.
The documentation for this class was generated from the following file: