动态内存分配
在计算机科学中, 动态内存分配(Dynamic memory allocation)又称为堆内存分配,是指计算机程序在运行期中分配使用内存。它可以当成是一种分配有限内存资源所有权的方法。
动态分配的内存在被程序员明确释放或被垃圾回收之前一直有效。与静态内存分配的区别在于没有一个固定的生存期。这样被分配的对象称之为有一个「动态生存期」。
细节
分配过程包括寻找一块足够大未被使用的内存。
通常,内存是从一个被称为堆(heap)的内存池中分配出来的。高级语言封装了内存地址的概念,内存通常是通过指针来间接访问的。分配算法经常将组织分配释放组块等操作封装成抽象的接口供上层函数调用。
效率
堆分配的效率与分配算法的优劣关系很大。
实现
参见
外部链接
补充阅读
- "Dynamic Storage Allocation: A Survey and Critical Review"(页面存档备份,存于), Department of Computer Sciences University of Texas at Austin
参考文献
- Donald Knuth. Fundamental Algorithms, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89683-4. Section 2.5: Dynamic Storage Allocation, pp. 435–456.
- Simple Memory Allocation Algorithms on OSDEV Community
- Wilson, P.R.; Johnstone, M.S.; Neely, M.; Boles, D. . Memory Management: International Workshop, Iwmm'95, Kinross, Uk, September 27-29, 1995: Proceedings (Springer). 1995 [2008-01-06]. ISBN 9783540603689.
- Berger, E.D.; Zorn, B.G.; McKinley, K.S. . ACM SIGPLAN Notices. 2001, 36 (5): 114–124. doi:10.1145/381694.
- Berger, E.D.; Zorn, B.G.; McKinley, K.S. . . ACM Press New York, NY, USA: 1–12. 2002.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.