文件名称:memory-allocators:C++中自定义内存分配器提高动态内存分配的性能
文件大小:347KB
文件格式:ZIP
更新时间:2024-08-12 19:18:00
memory-allocation custom-allocator pool-allocator stack-allocator linear-allocator
目录 介绍 当应用程序需要更多内存时,可以在运行时在堆中(而不是在堆栈中)分配内存。 这种内存被称为“动态内存”,因为它在编译时是不可知的,并且在执行过程中它的需求会发生变化。 我们的程序可以使用“malloc”请求动态内存。 Malloc 返回一个地址到内存中我们可以存储数据的位置。 一旦我们处理完这些数据,我们就可以调用“free”来释放内存并让其他进程使用它。 对于这个项目,我已经实现了不同的方式来管理自己在 C++ 中的动态内存。这意味着我们将使用自定义内存分配器,而不是使用像“malloc”或“free”这样的本机调用,它会为我们做到这一点但以更有效的方式。 因此,我们的目标是了解最常见的分配器是如何工作的,它们提供什么,并比较它们以查看哪个性能更好。 构建说明 git clone https: // github.com/mtrebi/memory-allocators.
【文件预览】:
memory-allocators-master
----.gitignore(371B)
----src()
--------Allocator.cpp(50B)
--------StackAllocator.cpp(2KB)
--------PoolAllocator.cpp(2KB)
--------Benchmark.cpp(6KB)
--------FreeListAllocator.cpp(7KB)
--------CAllocator.cpp(341B)
--------LinearAllocator.cpp(2KB)
--------main.cpp(2KB)
----LICENSE(1KB)
----README.md(19KB)
----docs()
--------Dynamic memory(I).pdf(195KB)
--------images()
----CMakeLists.txt(433B)
----includes()
--------SinglyLinkedList.h(412B)
--------FreeListAllocator.h(1KB)
--------StackLinkedList.h(409B)
--------LinearAllocator.h(555B)
--------CAllocator.h(349B)
--------StackAllocator.h(623B)
--------Benchmark.h(2KB)
--------DoublyLinkedList.h(467B)
--------IO.h(730B)
--------Allocator.h(561B)
--------DoublyLinkedListImpl.h(2KB)
--------Utils.h(1KB)
--------StackLinkedListImpl.h(291B)
--------SinglyLinkedListImpl.h(1KB)
--------PoolAllocator.h(672B)