【C++】从零实现一个高并发内存池 本项目实现了一个具有三层缓存机制的高并发内存池,项目原型为 google 的开源项目 tcmalloc,tcmalloc 全称 Thread-Caching Malloc,即线程缓存的 malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数(malloc、free)。
【C++】详解菱形继承及菱形虚拟继承 C++的多继承一直被广大程序员诟病,因为有了多继承,就存在菱形继承,有了菱形继承,就存在菱形虚拟继承,底层非常复杂,所以建议不要设计出多继承,尤其是不要设计出菱形继承,否则在代码复杂度及性能上都可能会产生问题。
【C++】STL常用容器deque VectorListSGI-deque(固定大小buff)优点下标随机访问效率高缓存命中(空间局部性)任意位置插入删除效率高按需申请释放下标随机访问效率较高,但不及vector缺点头插头删效率低扩容有消耗下标随机访问效率低缓存命中低中间插入删除效率低。
【C++】迭代器失效问题 迭代器(iterator)是一个可以对其执行类似指针的操作(如:解引用 operator*() 、自增 operator++() 的对象,我们可以将它理解成为一个指针,但它又不是我们所谓普通的指针,我们可以称之为广义指针。相比顺序结构(vector、string等),list无法通过[i]的方式进行随机访问,迭代器的出现便方便了链表等非顺序数据结构的遍历操作。
浅谈进程地址空间 为什么要有地址空间+页表?1.将物理内存从无序变为有序,以进程以统一的视角看到内存。2.由于页表映射关系的存在,可以将进程管理和内存管理进行解耦。3.地址空间+页表是保护内存安全的重要手段!