Archives
- 18 Apr 问题定位和性能优化案例集锦 -- 工具补充实验
- 15 Apr 问题定位和性能优化案例集锦
- 14 Apr 实用工具集索引
- 12 Apr 博客主题切换为Chirpy
- 09 Apr CPU及内存调度(五) -- ptmalloc、tcmalloc、jemalloc、mimalloc内存分配器(下)
- 04 Apr CPU及内存调度(四) -- ptmalloc、tcmalloc、jemalloc、mimalloc内存分配器(上)
- 02 Apr CPU及内存调度(三) -- 内存问题定位工具和实验
- 28 Mar DeepSeek 3FS学习实践(一) -- 事件循环
- 25 Mar Redis学习实践(三) -- 主从复制和集群
- 23 Mar Redis学习实践(二) -- 多线程、RDB和AOF
- 22 Mar Redis学习实践(一) -- 数据类型和底层数据结构
- 20 Mar CPU及内存调度(二) -- Linux内存管理
- 18 Mar 并发与异步编程(五) -- 无锁编程梳理
- 16 Mar 并发与异步编程(四) -- 异步demo实验并分析性能
- 14 Mar 并发与异步编程(三) -- 性能分析工具:gperftools和火焰图
- 11 Mar 并发与异步编程(二) -- 异步编程框架
- 09 Mar CPU及内存调度(一) -- 进程、线程、系统调用、协程上下文切换
- 08 Mar 并发与异步编程(一) -- 实现一个简单线程池
- 02 Mar 如何关闭一个TCP连接?
- 28 Feb 梳理Redis中的epoll机制
- 25 Feb ioserver服务实验(二) -- epoll使用梳理
- 22 Feb ioserver服务实验(一) -- 借助trae搭建项目
- 12 Feb AI Agent学习实践笔记
- 11 Feb DDIA阅读学习笔记
- 03 Nov Solana开发学习(一) -- 总体说明
- 27 Oct Rust学习实践(九) -- Demo项目:几个Demo练习
- 19 Oct Rust学习实践(八) -- Demo项目:实现简易Redis
- 15 Oct Rust学习实践(七) -- Rust网络编程和Demo
- 11 Oct Rust学习实践(六) -- Rust特性:unsafe、macro宏编程、异步编程
- 07 Oct Rust学习实践(五) -- Rust特性:并发编程
- 01 Oct Rust学习实践(四) -- Rust特性:智能指针
- 28 Sep Rust学习实践(三) -- Rust特性:生命周期及函数式编程
- 20 Sep Rust学习实践(二) -- Demo项目:文件搜索工具
- 17 Sep Rust学习实践(一) -- 总体说明和Rust基础
- 15 Sep MySQL学习实践(三) -- MySQL索引
- 11 Sep MySQL学习实践(二) -- MySQL事务
- 07 Sep MySQL学习实践(一) -- 整体架构和基本操作的流程
- 30 Aug MIT6.824学习笔记(四) -- Raft
- 26 Aug Linux存储IO栈梳理(四) -- 通用块层
- 21 Aug MIT6.824学习笔记(三) -- GFS
- 20 Aug MIT6.824学习笔记(二) -- RPC和线程
- 17 Aug MIT6.824学习笔记(一) -- 课程介绍 及 MapReduce
- 15 Aug Linux存储IO栈梳理(三) -- eBPF和ftrace跟踪IO写流程
- 13 Aug Linux存储IO栈梳理(二) -- Linux内核存储栈流程和接口
- 11 Aug LevelDB学习笔记(七) -- 布隆过滤器
- 09 Aug LevelDB学习笔记(六) -- LRU缓存
- 07 Aug LevelDB学习笔记(五) -- sstable实现
- 02 Aug LevelDB学习笔记(四) -- memtable结构实现
- 29 Jul LevelDB学习笔记(三) -- 日志结构实现
- 20 Jul LevelDB学习笔记(二) -- 读写操作流程
- 13 Jul 网络实验 -- TIME_WAIT状态的连接收到SYN是什么表现
- 11 Jul Linux存储IO栈梳理(一) -- 存储栈全貌图
- 10 Jul LevelDB学习笔记(一) -- 整体架构和基本操作
- 05 Jul TCP发送接收过程(三) -- 学习netfilter和iptables
- 03 Jul 追踪内核网络堆栈的几种方式
- 02 Jul TCP发送接收过程(二) -- 实际案例看TCP性能和窗口、Buffer的关系
- 30 Jun TCP发送接收过程(一) -- Wireshark跟踪TCP流统计图
- 28 Jun eBPF学习实践系列(六) -- bpftrace学习和使用
- 26 Jun TCP半连接全连接(四) -- eBPF跟踪全连接队列溢出(下)
- 23 Jun TCP半连接全连接(三) -- eBPF跟踪全连接队列溢出(上)
- 20 Jun ollama搭建本地个人知识库
- 20 Jun eBPF学习实践系列(五) -- 分析tcplife.bpf.c程序
- 19 Jun eBPF学习实践系列(四) -- eBPF的各种追踪类型
- 16 Jun Excalidraw白板工具和快捷键
- 15 Jun eBPF学习实践系列(三) -- 基于libbpf开发实践
- 12 Jun 记一次失败的/boot分区扩容
- 10 Jun eBPF学习实践系列(二) -- bcc tools网络工具集
- 06 Jun eBPF学习实践系列(一) -- 初识eBPF
- 30 May TCP半连接全连接(二) -- 半连接队列代码逻辑
- 27 May 分析netstat中的Send-Q和Recv-Q
- 20 May 分析某环境中ss结果中Send-Q为0的原因
- 18 May TCP半连接全连接(一) -- 全连接队列相关过程
- 14 May 结构型设计模式
- 14 May 行为型设计模式-命令模式
- 14 May 行为型设计模式-策略模式
- 14 May 行为型设计模式-观察者模式
- 13 May 创建型设计模式-原型模式
- 12 May 创建型设计模式-建造者模式
- 12 May 创建型设计模式-工厂模式
- 11 May 创建型设计模式-单例模式
- 06 May 记一个systemd设置自启动问题
- 27 Sep 服务究竟被谁kill了? -- 利用SystemTap监测
- 26 Sep 服务究竟被谁kill了? -- 利用audit审计监测
- 30 Jun 从1万空文件占用空间大小看Linux文件系统结构
- 19 May MySQL单表超过2000万后会怎么样
- 11 May strace工具案例
- 10 May RFC1180学习笔记
- 09 Apr 网络实验-设置机器的MTU和MSS
- 01 Apr 阶段小结
- 07 Nov ApplyFunctionalProgrammingPrinciples翻译学习
- 28 Oct ActWithPrudence翻译学习
- 27 Oct 区块链学习笔记
- 21 Oct C++不可拷贝类和右值引用
- 20 Oct C++构造函数的隐式转换和转换函数
- 18 Oct C++中gRPC访问结构体成员和const访问限制
- 18 Oct C和C++的历史版本迭代整理
- 16 Oct C++中的RAII机制和互斥锁应用
- 15 Oct Shell中各种括号的作用和区别
- 14 Oct Linux构建自动化过期日志备份
- 11 Oct STL容器之容器基本操作和删除成员需注意的陷阱
- 10 Oct STL容器之map使用和C++11遍历新用法
- 28 Sep 构建工程化的makefile
- 24 Mar sar和pidstat使用
- 08 Jul 回车及换行的区别及介绍
- 29 Jun 实用工具集合之tmux
- 29 Jun 实用工具集合之oh-my-zsh
- 03 May Vim编码识别及转换
- 04 Apr GitHub Pages及jekyll搭建博客
- 20 Mar git学习实践笔记
- 05 Mar Windows利器Cmder&使用Markdown写博客
- 18 Aug crontab学习使用笔记
- 01 Aug Vim插件配置
- 01 Jan LeetCode刷题学习(五) -- 字符串
- 01 Jan LeetCode刷题学习(四) -- 哈希表
- 01 Jan LeetCode刷题学习(三) -- 链表篇
- 01 Jan LeetCode刷题学习(二) -- 数组篇
- 01 Jan LeetCode刷题学习(一) -- 开篇