- Performance (12)
- [演讲笔记] 飞快地解析 JSON
- ClickHouse 的 SIMD UTF-8 验证实现
- ClickHouse 的 inline memcpy 实现
- 一种没用的跳转判断优化算法
- 一种简单的查找优化算法
- C++ 的 std::simd 使用
- 一些 IO 指标的跟踪点
- 一些硬件特性对程序性能的影响
- 浅谈系统性能的工作流
- 浅谈系统性能的基本理论
- [论文阅读] A Top-Down Method for Performance Analysis
- 使用 LLVM-MCA 进行静态性能分析
- Debugging (3)
- Linux 内核的 ftrace 实现思路
- [翻译] eBPF 的工作原理
- 使用 remake 正确地调试 Makefile
- 差生文具多 (5)
- 使用 GenMC 检验 C/C++ 内存模型
- 使用 packetdrill 观测 Linux 内核的 TCP 状态转移
- 使用 packetdrill 观测 Linux 内核的 TCP backlog
- 使用 LLVM-MCA 进行静态性能分析
- 使用 remake 正确地调试 Makefile
- 翻译 (3)
- [翻译] eBPF 的工作原理
- [翻译] C++ Execution:从零开始的 Sender/Receiver
- [翻译] 为什么 C++20 是最 awesome 的网络编程语言
- Networking (9)
- Asio 异步操作的取消支持
- dispatch、post 和 defer
- [演讲笔记] 结构化并发与协程实践
- 适配 io_uring 异步函数到 C++26 std::execution
- 实现一个内核态的 web 服务器
- 使用 packetdrill 观测 Linux 内核的 TCP 状态转移
- 使用 packetdrill 观测 Linux 内核的 TCP backlog
- RFC5681 笔记,以及 TCP Tahoe、TCP Reno 算法细节
- RFC6298 笔记:RTO 计算和定时器维护
- Process (4)
- [快速笔记] 抢占调度和 nvcsw/nivcsw
- [论文阅读] Earliest Eligible Virtual Deadline First (EEVDF)
- AOSP 的进程管理
- Linux 内核的 CFS 任务调度
- Assembly (2)
- 反汇编调研 this offset 和 vtable thunk
- 实现一个简单的协程
- Architecture (5)
- x86 的高位地址屏蔽(LAM/UAI)
- x86 的内存类型
- 一些硬件特性对程序性能的影响
- [论文阅读] A Top-Down Method for Performance Analysis
- 浅谈 x86 特定体系下的并发
- Memory (8)
- Linux 内核的 struct page 结构体
- x86 的高位地址屏蔽(LAM/UAI)
- [草稿] Linux 内核的内存回收机制
- [论文阅读] Mimalloc: Free List Sharding in Action
- Linux 内核的 meminfo
- AOSP 的进程管理
- Linux 内核的 mm 物理内存管理
- [草稿] ptmalloc 的一些参数
- Build System (4)
- 使用 remake 正确地调试 Makefile
- [快速笔记] Linker Script 与 vmlinux.lds
- ELF 符号:复杂又麻烦的技术细节
- CSAPP 第七章笔记:链接过程
- Paper (7)
- [论文阅读] A Top-Down Method for Performance Analysis
- [论文阅读] Earliest Eligible Virtual Deadline First (EEVDF)
- [论文阅读] Mimalloc: Free List Sharding in Action
- [论文阅读] F2FS: A New Filesystem for Flash Storage
- [论文阅读] MMAP = 💩
- [论文阅读] Scaling Memcache at Facebook
- Linux 内核的 IO 预读算法
- IO (15)
- Asio 异步操作的取消支持
- dispatch、post 和 defer
- 尝试 io_uring 低层接口编程
- 适配 io_uring 异步函数到 C++26 std::execution
- [快速笔记] 打开文件优化:LOOKUP_CACHED
- Linux 内核的 io_uring 任务调度
- 一些 IO 指标的跟踪点
- 实现一个短至 200 行的 io_uring 协程
- F2FS:通过 Linux 内核源码了解文件系统实现
- F2FS:通过 mkfs.f2fs 源码了解文件系统实现
- [论文阅读] F2FS: A New Filesystem for Flash Storage
- Linux 内核的 blk-mq(Block IO 层多队列)机制
- Linux 内核的 deadline elevator
- Linux 内核的 VFS 简单流程
- Linux 内核的 IO 预读算法
- Kernel (26)
- Linux 内核的 struct page 结构体
- 尝试 io_uring 低层接口编程
- Linux/UNIX 的信号机制拾遗
- [快速笔记] 抢占调度和 nvcsw/nivcsw
- [快速笔记] 打开文件优化:LOOKUP_CACHED
- Linux 内核的 io_uring 任务调度
- Linux 内核的 ftrace 实现思路
- 一些 IO 指标的跟踪点
- [翻译] eBPF 的工作原理
- 实现一个内核态的 web 服务器
- [草稿] Linux 内核的中断机制浅析
- [草稿] Linux 内核的内存回收机制
- [快速笔记] proc 文件系统的 pid 细节
- [论文阅读] Earliest Eligible Virtual Deadline First (EEVDF)
- F2FS:通过 Linux 内核源码了解文件系统实现
- F2FS:通过 mkfs.f2fs 源码了解文件系统实现
- [快速笔记] Linker Script 与 vmlinux.lds
- [论文阅读] MMAP = 💩
- Linux 内核的 blk-mq(Block IO 层多队列)机制
- Linux 内核的 meminfo
- Linux 内核的 CFS 任务调度
- Linux 内核的 mm 物理内存管理
- Linux 内核的 deadline elevator
- Linux 内核的 VFS 简单流程
- Linux 内核的 IO 预读算法
- Linux 内核的 epoll 实现
- RTFSC (14)
- Swiss table 源码分析
- Asio 的 io_context 任务调度
- 从 C++20 协程,到 Asio 的协程适配
- [翻译] C++ Execution:从零开始的 Sender/Receiver
- F2FS:通过 Linux 内核源码了解文件系统实现
- F2FS:通过 mkfs.f2fs 源码了解文件系统实现
- AOSP 的进程管理
- 从无栈协程,到 Asio 的协程实现
- Linux 内核的 deadline elevator
- libstdc++ 的容器实现
- Linux 内核的 VFS 简单流程
- Linux 内核的 IO 预读算法
- Linux 内核的 epoll 实现
- C++ 的 std::sort 流程分析
- 轮子 (11)
- 实现一个内核态的 web 服务器
- 实现一个短至 200 行的 io_uring 协程
- 实现一个 zip (for C++20)
- 实现一个布谷鸟过滤器
- 实现标准库 unified executors [C++20 低配复刻版]
- 实现一个 raft 协议
- 实现一个 RPC 轮子
- 实现一个简单的协程
- 实现一个比 glog 快十倍的日志库
- 实现一个 variant
- 数据库存储引擎的实现
- Database (1)
- 数据库存储引擎的实现
- Concurrency (6)
- [快速笔记] C++20 协程的竞态条件
- 使用 GenMC 检验 C/C++ 内存模型
- 浅读 perfbook:如果并行编程很难,那我能做点什么?
- 浅谈 C++ 内存模型
- 浅谈 x86 特定体系下的并发
- 一些经典互斥算法的实现
- C++ (34)
- [快速笔记] C++20 协程的对称转移
- [快速笔记] C++20 协程的竞态条件
- [演讲笔记] 结构化并发与协程实践
- 适配 io_uring 异步函数到 C++26 std::execution
- Swiss table 源码分析
- C++ 的 std::simd 使用
- 使用 GenMC 检验 C/C++ 内存模型
- Asio 的 io_context 任务调度
- 实现一个短至 200 行的 io_uring 协程
- 实现一个 zip (for C++20)
- C++ 的类型双关和隐式生存期
- C++ 的定制点设计
- 从 C++20 协程,到 Asio 的协程适配
- 浅谈 C++ 内存模型
- [翻译] C++ Execution:从零开始的 Sender/Receiver
- [翻译] 为什么 C++20 是最 awesome 的网络编程语言
- 实现标准库 unified executors [C++20 低配复刻版]
- 从无栈协程,到 Asio 的协程实现
- 反汇编调研 this offset 和 vtable thunk
- 实现一个 raft 协议
- 实现一个 RPC 轮子
- 实现一个简单的协程
- libstdc++ 的容器实现
- 使用 CRTP 实现编译期接口定义
- 像位运算一样构造 tuple
- 实现一个比 glog 快十倍的日志库
- [逐渐变态] 实现编译时排序
- 浅谈侵入式容器
- C++ 的 std::sort 流程分析
- 实现一个 variant
- 定时器的简单讨论
- 通过滑动窗口来优化 vector
- 十行以内实现一个 defer
- [无用知识] C/C++ 整型类型的一些历史细节
- 摘录 (3)
- 海猫鸣泣之时推理小剧场
- 《巫师 3》开场旁白
- PSYCHO-PASS 台词摘录
- Distributed System (2)
- 实现一个 raft 协议
- PAXOS 小记
- Design (8)
- Asio 异步操作的取消支持
- dispatch、post 和 defer
- [演讲笔记] 结构化并发与协程实践
- C++ 的定制点设计
- [论文阅读] Mimalloc: Free List Sharding in Action
- [翻译] C++ Execution:从零开始的 Sender/Receiver
- [论文阅读] Scaling Memcache at Facebook
- Head First 设计模式学习笔记
- Algorithm (21)
- [演讲笔记] 飞快地解析 JSON
- ClickHouse 的 SIMD UTF-8 验证实现
- ClickHouse 的 inline memcpy 实现
- 一种没用的跳转判断优化算法
- 一种简单的查找优化算法
- Swiss table 源码分析
- 实现一个布谷鸟过滤器
- C++ 的 std::sort 流程分析
- 局部敏感的哈希——SimHash
- 高维前缀和笔记
- 非常简洁的 shift-and / shift-or 教程
- 非常简洁的无旋 Treap 教程
- 红黑树的简易实现
- A*解决 K 短路
- 非常简洁的回文树教程
- KMP / exKMP / AC 自动机教程
- 非常简洁的后缀自动机教程
- [感性认识] 网络流中反向边的正确性
- 非常简洁的后缀数组教程
- FFT 推导过程
- Luogu - P3384 树链剖分模板
- ICPC (77)
- 2018Nanjing - D 模拟退火
- 2018 青岛网络赛 G - Couleur 区间上的启发式合并
- 2018 徐州网络赛 - Trace
- 2018 沈阳网络赛 - Ka Chang KD 树暴力
- HDU - 4630 离线处理区间点对问题
- HDU - 6133 启发式合并
- Luogu - P3384 树链剖分模板
- BZOJ - 3166 可持久化 Trie 维护次大区间
- BZOJ - 2741 分块维护最大连续异或和
- ZOJ - 3649 树上倍增
- Codeforces - 24D 有后效性的 DP 处理
- POJ - 1821 单调队列优化 DP
- HihoCoder - 1513 bitset 处理五维偏序
- POJ - 1741 点分治 详解
- 2018 牛客多校 2 - J farm 随机乱搞/二进制分组
- SPOJ - COT 路径构造主席树
- ZOJ - 2112 主席树套树状数组
- HDU - 4866 主席树 二分
- BZOJ - 3555 哈希拼接
- HDU - 5306 剪枝的线段树
- Codeforces - 527C 平衡树维护几何
- SPOJ - COT2 离线路径统计
- POJ - 1990 区间贡献计算
- BZOJ - 4520 K 远点对
- BZOJ - 3489 KD 树 范围计数 空间思维转换
- SGU - 507 启发式合并维护平衡树信息
- Codeforces - 600E 树上启发式合并
- Codeforces - 570D 离散 DFS 序 特殊的子树统计
- SPOJ - FREQ2 莫队
- Wannafly 挑战赛 14 - E 并查集维护线性基区间
- BZOJ - 2115 独立回路 线性基
- 51nod - 1163 巧妙的并查集 O(1) 维护区间
- CodeChef - RIN 最小割应用 规划问题
- BZOJ - 1458 / P4311 最大流应用 贪心
- ZOJ - 2676 01 分数规划 浮点 ISAP
- Codeforces - 914F bitset 维护字符串匹配个数
- 18 华工校赛 - 小马哥的超级盐水 折半枚举
- UVALive - 3942 左儿子 trie DP
- UVA - 10817 状压 DP
- HDU - 1525 博弈 暴力分析
- ZOJ - 3632 DP 单调优化
- UVA - 10589 构造最优化函数
- 夜深人静补数学
- 树上启发式合并 初步
- SPOJ - REPEATS RMQ 循环节
- URAL - 1297 后缀数组的做法 LCP 应用
- [八分之一的男人] POJ - 1743 后缀数组 height 分组
- UVA - 11029 输出前三位
- Codeforces - 71E 状压 DP
- CodeChef - NWAYS 组合数 朱世杰恒等式
- POJ - 3233 矩阵套矩阵
- HDU - 4686 函数积的前缀和
- HDU - 1588 矩阵前缀和
- HDU - 2604 矩阵快速幂 字符串递推 两种解法
- HDU - 2256 矩阵快速幂 带根号的递推
- BZOJ - 1257 分块 详解
- POJ - 1456 贪心 堆常用操作 注意细节
- BZOJ - 4260 01 字典树 + 前后缀
- BZOJ - 2457 思維 + 貪心
- HDU - 4699 对顶栈
- POJ - 2018 二分 + 单调子段和
- POJ - 3263 差分 + 前缀和
- POJ - 1845 约数和
- BZOJ - 2157 树链剖分 + 线段树
- BZOJ - 1013 高斯消元
- BZOJ - 1003 DP + 最短路
- 线性筛小总结
- 简易随机数
- POJ - 1080 枚举 / DP
- Codeforces - 722C 区间合并
- UESTC - 1437 LCA 模板
- Codeforces - 316C2 棋盘模型
- UVALive - 3645 时序模型
- UVA - 11082 行列模型
- 网络流模板
- Codeforces - 321B 最大费用流
- 高精度模板
- Games (2)
- DX12 Chapter6 人肉机翻
- DX12 Chapter4 人肉机翻