摘要:
spdlog是开源、高性能、跨平台,支持header-only/compiled的C++日志库。 本文主要目的是对spdlog v1.13.0的源码进行分析(编译运行环境为6.5.0-18-generic #18~22.04.1-Ubuntu),以探讨spdlog如何构建高性能、可扩展的日志框架的。 阅读全文
摘要:
初衷: 以http为例,大多数场景下已有成熟的测试工具能够通过构造报文来模拟测试场景,如postman、jemter等,但对接的第三方可能具有某些特定或约定好的机制,针对此类机制构造用例往往要花不少时间 而调测阶段通常可以通过tcpdump极快的获取到范例报文,因此如果可以直接根据范例报文来构造用例 阅读全文
摘要:
C++的原始理念: (1)应当具有Simula那样的对cheche那样的对程序组织的支持——类、某种形式的类分层结构、对并发的某种形式的支持、对基于类的类型系统的强(静态)检查 (2)产出的程序应该能运行的像BCPL一样快,将分别编译后的程序单元组合成完整程序应该向BCPL一样简单有效,将多种语言写 阅读全文
摘要:
BloomFilterPolicy类 Bloom Filter实现 源文件位置 util/bloom.cc 优点:相对于其他表示数据集的数据结构,如平衡二叉搜索树、Trie 树、哈希表,甚至更简单的数组或者链表,Bloom Filter有着巨大的时空优势。上述提到的表示数据集的数据结构,大都需要对数 阅读全文
摘要:
Slice类 Slice类是对字符串的封装,设计思想与std::string_view相似。 源文件位置 include/leveldb/slice.h 优点: 1、拷贝速度快,Slice的拷贝仅需拷贝数据指针和数据长度 2、多个Slice可指向同个字符串,减少资源开销 3、支持std::strin 阅读全文
摘要:
Arena类 Arena类是极为简易的内存池实现,支持动态申请内存空间(内存对齐/不对齐方式),通过RAII机制保证Arena对象管理的内存在Arena对象生命周期结束后自动清理。 源文件位置 util/arena.h util/arena.cc 优点:访问速度快 缺点:存在内存浪费,详细见下文Al 阅读全文