摘要:引言 在windows平台下,一个检测内存泄漏的工具是vld。 下载地址是:https://kinddragon.github.io/vld/ github地址:https://github.com/KindDragon/vld 使用 从网上下载exe安装包。安装过程中,可以选择把vld头文件、li 阅读全文
posted @ 2020-10-10 23:22 二狗啸地 阅读(145) 评论(0) 推荐(0) 编辑
摘要:引言 perf 是linux提供的一个免费profile工具。 比较全面的一个教程是: "brendangregg" perf生成记录 1.生成perf数据: 2.读取perf.data,输出trace 3.压缩栈 这里用到了火焰图工具:https://github.com/brendangregg 阅读全文
posted @ 2020-01-06 23:56 二狗啸地 阅读(242) 评论(0) 推荐(0) 编辑
摘要:引言 C++使用虚函数来实现多态机制,大多数编译器是通过虚函数表来实现动态绑定。 类的内存布局 1.普通类 类中只有普通成员变量,对象在内存中顺序存储成员变量。输出: 2.有虚函数的类 先看输出结果: 我们看到,这个对象的内存占用比上一个多了8个字节,其中成员变量m的地址也和对象b的地址不一样了,正 阅读全文
posted @ 2020-01-05 15:11 二狗啸地 阅读(49) 评论(0) 推荐(0) 编辑
摘要:前言 nm是name的缩写,它显示指定文件中的符号信息,文件可以是对象文件、可执行文件或对象文件库。如果文件中没有包含符号信息,nm报告该情况,单不把他解释为出错。nm缺省情况下报告十进制符号表示法下的数字值。 选项 -a/--debug-syms:显示所有符号,包括debugger-only sy 阅读全文
posted @ 2019-12-11 23:20 二狗啸地 阅读(1816) 评论(0) 推荐(1) 编辑
摘要:由来 在最近的项目中,我需要用到一个能设置固定长度的优先级队列,查了一下知名的第三方库,没有找到合适的,于是,决定自己写一个。 需要的功能主要是: 一个能存放对象的队列,支持push和pop 容量固定,可以配置 能自动排序 能够遍历 ring buffer 因为,我通读过STL的源码,对stl容器比 阅读全文
posted @ 2019-11-06 21:19 二狗啸地 阅读(342) 评论(0) 推荐(2) 编辑
摘要:模板是编译器在编译期间生成代码。虚函数是程序运行期间计算出调用哪个函数。 一旦程序在运行期间计算出它需要调用一个模板化的虚函数,汇编已经生成了,编译器不能再生成合适的实例了。因此,你不能使用模板虚函数。 不过,有一些强大且有趣的技术起源于结合多态和模板,尤其是所谓的 type erasure c++ 阅读全文
posted @ 2019-10-24 18:00 二狗啸地 阅读(300) 评论(0) 推荐(0) 编辑
摘要:介绍 gtest是谷歌开发的用来做C++单元测试的测试框架 基本概念 使用gtest,你就需要写断言(assertions),用来检查一个表达式是否为true。断言的结果有三个:正确、非致命错误、致命错误。如果出现致命错误,就会退出当前函数,否则继续执行当前函数的后续部分。 测试用例(tests)使 阅读全文
posted @ 2019-10-19 22:15 二狗啸地 阅读(378) 评论(0) 推荐(1) 编辑
摘要:引入 shared_ptr 是c++为了提高安全性而添加的智能指针,方便了内存管理。 特点 shared_ptr 是通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可占有同一对象。这便是所谓的引用计数(reference counting)。一旦最后一个这样的指针被销毁,也就是 阅读全文
posted @ 2019-09-01 15:30 二狗啸地 阅读(2342) 评论(0) 推荐(0) 编辑
摘要:template class Sp { public: Sp(T* ptr = nullptr) : ptr_(ptr), count_(new size_t) { if (ptr) { *count_ = 1; } else { *count_ = 0; } } Sp(c... 阅读全文
posted @ 2019-09-01 02:36 二狗啸地 阅读(99) 评论(0) 推荐(0) 编辑
摘要:前言 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 当你需要从A的实例得到一份与A内容相同,但是又互不干扰的实例的话,就需要使用原型模式。 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这个其实和C++的拷贝构造函数的作用是相似的(但不相同),实际上就是动态抽取 阅读全文
posted @ 2019-03-05 15:01 二狗啸地 阅读(68) 评论(0) 推荐(0) 编辑