一种基于CPP的垃圾回收器的设计.docxVIP

  • 4
  • 0
  • 约4.65千字
  • 约 8页
  • 2017-09-11 发布于四川
  • 举报
一种基于CPP的垃圾回收器的设计

一种基于C++的垃圾回收器垃圾回收需要的核心技术多线程(并发)垃圾识别确定清理时机内存碎片整理以前C++无法推出一种广泛适用的垃圾回收器,因为标准C++无法实现并发.C++ 11提供了多线程,为垃圾回收器的实现提供了最根本的技术支持.因为多线程已经实现,本文就不提及了.垃圾识别是本文重点阐述的内容确定清理时机与碎片整理设计到相当复杂的算法设计与统计分析,本文并不涉及本文只叙述垃圾识别C++存储区划分为堆栈静态区常量区自由存储区代码区CPU寄存器??1.栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。2.堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。3.自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。4.全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。5.常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改)静态区常量区代码区完全是编译器的事自由存储器过于底

文档评论(0)

1亿VIP精品文档

相关文档