背景 By 鲁迅 By 高尔基 说明: 1. Kernel版本:4.14 2. ARM64处理器,Contex A53,双核 3. 使用工具:Source Insight 3.5, Visio 1. 概述 本文将描述 ,内存碎片整理技术。 内存碎片分为内碎片和外碎片: 内碎片:内存页里边的碎片; 外 ...
分类:
系统相关 时间:
2019-10-27 00:34:08
阅读次数:
142
背景 By 鲁迅 By 高尔基 说明: 1. Kernel版本:4.14 2. ARM64处理器,Contex A53,双核 3. 使用工具:Source Insight 3.5, Visio 1. 概述 本文将分析 。 伙伴系统,是通过将物理内存划分为页面来进行管理的系统,支持连续的物理页面分配和 ...
分类:
系统相关 时间:
2019-10-13 17:17:02
阅读次数:
130
上节在学习第二级配置器时了解了第二级配置器通过内存池与自由链表来处理小区块内存的申请。但只是对其概念进行点到为止的认识,并未深入探究。这节就来学习一下自由链表的填充和内存池的内存分配机制。 refill()函数——重新填充自由链表 前情提要,从上节第二级配置器的源码中可以看到,在空间配置函数allo ...
分类:
其他好文 时间:
2019-10-13 17:08:52
阅读次数:
98
上节学习了内存配置后的对象构造行为和内存释放前的对象析构行为,在这一节来学习内存的配置与释放。 C++的内存配置基本操作是::operator new(),而释放基本操作是::operator delete()。这两个全局函数相当于C的malloc() 和free() 函数。而SGI正是以mallo ...
分类:
其他好文 时间:
2019-10-13 17:05:05
阅读次数:
78
stl_vector.h : vector:可随机访问元素的序列容器,从后插入或删除在常量时间内完成,从首部或中间则需线性时间内完成; _Vector_alloc_base:vector分配基类模板;模板参数分别为数据类型T,分配器类型_Allocator,以及一个bool标识_IsStatic(用... ...
分类:
其他好文 时间:
2019-10-10 12:48:58
阅读次数:
107
defalloc.h : 默认分配器allocator: 早期专用于HP的默认分配器,目前是不被赞成使用的; 仅提供了allocator模板简单封装,重声明(或类型外抛)一些必要的类型Type,此外提供申请和释放内存接口(底层直接使用全局::operator new和::operator delet... ...
分类:
其他好文 时间:
2019-10-10 12:39:17
阅读次数:
100
背景 By 鲁迅 By 高尔基 说明: 1. Kernel版本:4.14 2. ARM64处理器,Contex A53,双核 3. 使用工具:Source Insight 3.5, Visio 1. 介绍 之前的系列内存管理文章基本上描述的是物理页面的初始化过程,以及虚拟页面到物理页面的映射建立过程 ...
分类:
系统相关 时间:
2019-10-06 09:30:33
阅读次数:
120
转自https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html 1、map简介 map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。 对于迭代器来说,可以修改实值,而不能修改key。 ...
分类:
编程语言 时间:
2019-10-04 13:35:16
阅读次数:
92
字节增强条件匹配 在 skywalking 中实现很多基于 byte-buddy 的关于链式匹配查询的实现, 代码如下所示: 其对应的类的类图关系如下所示:除此之外, 为了便于更好的执行在拦截时期的的匹配, skywalking 又定义了一套自实现的 Match 的匹配器, 类的简要类图关系如下所示 ...
分类:
其他好文 时间:
2019-09-14 13:58:34
阅读次数:
216
google代码风格 1.使用安全的分配器(allocator),如scoped_ptr,scoped_array 2.测试用的,其他的不能用: 2.1 友元 2.2 C++异常 2.3 RTTI 3.类型转换,不要用(int) 3.1 static_cast 3.2 const_cast 3.3 ...
分类:
编程语言 时间:
2019-08-24 15:06:00
阅读次数:
105