内存管理
zmrlinux
密码学 小仙女 欢迎私聊一起学习
展开
-
c++ 学习笔记之动态内存管理
c++ 的动态内存管理是个大坑,寒假差点害死我。动态内存与智能指针智能指针是一个模板,使用的时候必须指定类型。shared_ptr<string> pl;shared_ptr<list<int>> p2;它的使用方式与普通指针类似。解引用一个智能指针返回它指向的对象make_shared 函数这是最安全的分配函数,属于标准库。此函数在...原创 2016-03-05 16:24:54 · 316 阅读 · 0 评论 -
内存相关讲座大纲
Redis数据库部分 数据结构部分 SDS struct len free char [] list struct prev next ...原创 2016-03-13 17:25:46 · 424 阅读 · 0 评论 -
内存管理器(二十一)标记-清扫回收算法
内存回收一共有四种基本的算法及若干高级算法:标记-清扫,标记-复制,标记-整理,引用计数。任何自动内存管理都需要面临三个基本任务:1.为新对象分配空间。2.确定存活时间。3.回收死亡对象所占空间。讨论前提:多线程条件下,只有一个回收线程。垃圾回收前提:“万物静止式”回收,所有的资源分配器都会静止,回收线程开始运作,从资源分配器的角度来看回收过程是原子的。回...原创 2016-08-05 12:14:18 · 897 阅读 · 0 评论 -
内存管理器(二十二) 标记-整理回收算法
我们今天来看看第二种垃圾回收方法:标记-整理回收算法双指针整理算法使用两个指针,一个从前向后遍历,我们称之为free指针,接着使用另一个指针,我们称之为scan指针,他从后像前遍历,当free 遇到空闲且大小合适的内存块时,将scan 所指向的内存拷贝到free 中,当free 和 sacn 指针相遇或者产生交互,我们就完成了这一次的标记-整理回收工作。 至于这个两个指针的交互地...原创 2016-08-06 10:21:21 · 488 阅读 · 0 评论 -
内存管理器(二十三) 标记-复制式 回收算法
标记-复制式回收算法GC 机制在一个系统中占重要地位,但是在使用过程中占用整体时间的最小部分,赋值器的执行开销产生的影响反而切实的影响这整个系统的性能。半区复制回收基本复制回收器会将堆划分为两个大小相等的半区,分别设置为来源空间,目标空间。/*半区复制回收算法*/ /*初始化以及分配*/ createSemispases(): topspace = heapstart; /*...原创 2016-08-08 15:01:04 · 394 阅读 · 0 评论 -
内存管理器(二十四)引用计数
引用计数一种直接的内存清扫方式,通过遍历可以直接的判定一个对象的存活性。这个思想可以说是非常的简单,有新对象就增加新对象的引用计数,并且减少旧对象的引用计数,当某个引用计数的值为0的时候将它回收。new(){ ref = allocate(); if (ref == NULL){ printf("error out of memory"); } rc(ref) = 0; retu...原创 2016-08-09 10:23:38 · 545 阅读 · 0 评论