【发布时间】:2013-05-29 21:52:12
【问题描述】:
我有一个关于动态内存分配的低级问题。 我知道可能有不同的实现,但我需要了解基本思想。
所以,
当现代操作系统内存分配器或等效的内存分配器分配一块内存时,这个块需要被释放。
但是,在此之前,需要存在一些系统来控制分配过程。
我需要知道:
- 此系统如何跟踪已分配和未分配的内存。我的意思是,系统需要知道已经分配了哪些块以及它们的大小,以便在分配和释放过程中使用这些信息。
现代硬件是否支持此过程,例如分配位或类似的东西? 或者是某种用于存储分配信息的数据结构。 如果有数据结构,它使用的内存与分配的内存相比有多少?
以大块而不是小块分配内存更好吗?为什么?
感谢任何有助于揭示基本实现细节的答案。
如果需要代码示例,C 或 C++ 就可以了。
【问题讨论】:
-
这感觉像是功课......
-
如果您需要相关帮助,请展示您的研究成果
-
我是一名自学成才的程序员。我使用谷歌和书籍。但是找到这样的信息需要相当长的时间。花时间学习一些东西并没有错,但是要学习的东西太多了。这就是我开始这个线程的原因。我 24 岁。