摘要:C++有一千个分支,你想学哪个?客户端(Qt),后端(更多的是量化和游戏),音视频流媒体,图形学,嵌入式,深度学习,存储,网络,量化,各种底层,驱动,操作系统内核等等。。。
C++ 需要学多久,怎样才能学好?怎样才能达到大厂技术标准?
其实这个问题不好回答...
为什么呢?
C++有一千个分支,你想学哪个?客户端(Qt),后端(更多的是量化和游戏),音视频流媒体,图形学,嵌入式,深度学习,存储,网络,量化,各种底层,驱动,操作系统内核等等。。。
C++ 学习具有明显的阶梯性,需从语法基础逐步过渡到系统级开发能力,同时结合具体应用方向深化(如后端开发、Qt等),文尾附腾讯T级职业等级标准图。
以下是按阶段划分的核心内容:
提示:如果你时间充足,建议先把C学习了,C/C++是一个体系,相信会对你的认知有一个提升。
Part1基础阶段此阶段目标是掌握 C++ 基本语法,理解程序执行逻辑与内存模型,为后续学习奠定基础。
环境搭建与工具链
编译器与 IDE:安装 GCC/Clang 编译器,使用 VSCode(搭配插件)或 CLion 作为开发环境。基础操作:掌握编译(g++)、运行、调试(GDB)命令,编写第一个程序(如 Hello World)。核心语法基础
数据类型与变量:基本类型(int、float、char)、自定义类型(enum、typedef),重点理解引用(Reference)与指针(Pointer)(内存地址操作、野指针处理)、const 常量的使用。控制流程:分支(if-else、switch-case)、循环(for、while)、跳转语句(break、continue),理解迭代逻辑。函数与模块化编程
函数核心:定义与调用(值传递、引用传递、指针传递)、重载(Overload)、内联函数(inline)、默认参数。工程化基础:命名空间(namespace,如 std 库的使用)、预处理指令(#define 宏定义、#ifdef 条件编译)。基础实践项目
命令行计算器(四则运算)、简易成绩管理系统(数组 + 文件存储),目标是掌握语法并理解栈 / 堆内存模型。Part2进阶阶段此阶段聚焦面向对象思想(OOP)、内存管理与标准库应用,是从 “会用” 到 “用好” 的关键。
面向对象编程(OOP)
类与对象:类的定义(成员变量 / 函数)、构造函数(默认 / 带参 / 拷贝构造)、析构函数,访问控制(public/protected/private)。继承与多态:单继承 / 多继承(虚基类解决菱形问题)、虚函数(virtual)、纯虚函数(抽象类)、动态类型转换(dynamic_cast)。内存管理与智能指针
手动管理:new/delete、数组 new/delete 的使用与风险(内存泄漏、二次释放)。智能指针:std::shared_ptr(引用计数)、std::unique_ptr(独占所有权)、std::weak_ptr(解决循环引用),搭配 Valgrind 等工具检测内存泄漏。模板与泛型编程
函数模板(如通用排序、交换逻辑)、类模板(自定义泛型容器)。STL 标准库:容器(vector、list、map、set)、算法(迭代器操作、查找、排序)、适配器(stack、queue),需熟练掌握其底层实现原理(如 vector 动态扩容机制)。文件与流操作
文本 / 二进制文件读写(ifstream、ofstream)、字符串流(stringstream)与格式化输出。进阶实践项目
命令行电话簿(类封装 + 文件持久化)、简易图书管理系统(继承 + 多态 + STL 容器),目标是掌握 OOP 思想与内存管理逻辑。Part3高阶阶段此阶段需具备处理复杂场景的能力,涵盖并发、网络、架构设计等核心技能。
多线程编程
线程管理:std::thread/std::jthread 的创建与销毁。同步机制:互斥量(std::mutex、std::lock_guard)、信号量(std::counting_semaphore)、读写锁(std::shared_mutex),理解线程池与任务调度原理。网络编程
基础:Socket 编程(TCP/UDP 协议)、客户端 / 服务器模型实现。进阶:使用 Boost.Asio、libuv 等网络库,理解 I/O 多路复用(select/poll/epoll)与 Reactor 模式。设计模式应用
创建型:单例模式(Singleton)、工厂模式(Factory)。结构型:适配器模式(Adapter)、装饰器模式(Decorator)。行为型:观察者模式(Observer)、策略模式(Strategy),需结合场景选择合适模式降低代码耦合。性能优化与调试
工具:性能分析(gprof、perf)、内存优化(避免碎片、内存池)、编译优化(GCC/Clang 选项)。调试:GDB 断点调试、日志系统设计,定位高并发场景下的性能瓶颈。高阶实践项目
C++ 难度在于 “语法背后的原理”(如内存模型、操作系统交互),而非单纯语法记忆。学好需兼顾 “基础扎实”“实践深入”“方向聚焦” 三大原则。
基础阶段(语法、指针、内存模型)是核心,例如:指针与引用的区别、new 与 malloc 的底层差异、栈与堆的内存分配机制,这些内容直接影响后续对 OOP 和多线程的理解。推荐通过《C++ Primer》系统学习语法,搭配《深入理解计算机系统》理解程序执行的底层逻辑(如寄存器、虚拟内存)。每个阶段必须配套实践:基础阶段写计算器,进阶阶段用 STL 实现图书管理系统,高阶阶段尝试开发简易 Web 服务器(解析 HTTP 请求 + 处理静态文件)。项目需 “循序渐进”:从单文件程序到多模块工程(用 CMake 管理),从单线程到多线程(解决竞态条件),逐步贴近工业级场景。C++ 涉及的知识体系庞大(语法、OS、网络、算法等),切忌急于求成。例如:多线程的互斥与同步,需要通过实际编写线程池并解决死锁问题才能真正掌握;内存管理需结合 Valgrind 调试多个泄漏案例才能理解风险点。
保持 “每周一个小练习 + 每月一个综合项目” 的节奏,积累 1-2 年,即可具备扎实的开发能力。
几个不同方向的学习路线图
红黑树
红黑树在进程调度 CFS 及内存管理中的应用场景解析红黑树的数学原理证明与推导过程红黑树左旋与右旋操作的手写演示步骤红黑树添加操作的实现逻辑及三种情况的证明红黑树删除操作的实现逻辑及四种情况的证明红黑树的线程安全实现方案工程实践中红黑树的实用特性总结磁盘存储的 B 树与 B + 树
磁盘结构剖析与数据存储底层原理多叉树的应用场景及 B 树的定义与证明B 树插入操作的两种分裂方式详解B 树删除操作的借位与节点合并方法B 树的插入、删除、遍历、查找操作手写演示B + 树的定义、特性与实现逻辑B + 树叶子节点前后指针的设计与作用B + 树的应用场景与实用特性分析B + 树的线程安全实现方式数据去重技术
Abhloriter Bitap 算法在海量数据去重中的应用Hash 原理剖析与 Hash 函数的实现方式Hash 技术的典型应用场景分布式 Hash 的实现原理与架构布隆过滤器在海量数据去重中的应用布隆过滤器的数学推导与准确性证明创建型设计模式
单例模式:实现原理、线程安全问题及解决方案策略模式:策略封装与动态切换机制观察者模式:订阅 - 发布机制与松耦合设计工厂方法模式与抽象工厂模式:对象创建的封装与扩展原型模式:对象复制的实现与深 / 浅拷贝问题结构型设计模式
适配器模式:接口兼容与系统集成方案代理模式:访问控制、延迟加载与增强功能实现责任链模式:请求分发与处理流程解耦状态模式:对象状态管理与行为动态切换桥接模式:抽象与实现的分离及多维度扩展组合模式:树形结构的统一表示与操作STL 容器及智能指针
STL 容器体系:序列式容器、关联式容器的特性与应用智能指针:shared_ptr 的引用计数机制、unique_ptr 的独占 ownership 及使用场景unordered_map 的底层实现(哈希表)与使用技巧哈希在 STL 中的应用:哈希函数、冲突解决策略及原理正则表达式与函数对象
正则表达式基础:basic_regex 对象、sub_match 匹配结果处理函数对象模板:function 的可调用对象封装、bind 的参数绑定与调整多线程与并发编程
C++ 新特性中的线程管理与协程基础原子操作:atomic 的类型支持、内存序与线程安全保证Lambda 表达式在并发编程中的应用:捕获模式与匿名任务thread_local 变量的线程私有存储特性、condition_variable 的线程同步机制异常处理与错误处理
异常处理:exception_ptr 的异常传递与延迟处理错误处理:error_category 的错误分类与描述协程的使用场景、状态管理与原理剖析构建工具与版本控制
Makefile/CMake/configure 的工作原理与实际应用构建工具的参数传递机制与常用操作函数Git 全流程:工作区与暂存区管理、分支创建与合并、服务器搭建与协作流程系统监控
Linux 运行时参数查看命令:系统资源、进程状态等关键指标获取进程间通信设施状态(ipcs)与系统运行时长(uptime)监控性能分析工具:iostat(磁盘活动)、mpstat(多处理器使用)的指标解读综合监控工具:sar(系统活动收集)、pmap(内存使用)、nmon(多维度监控)的使用系统监控与网络工具
多用途监控工具:glances(系统全景)、strace(系统调用跟踪)、ftptop(FTP 连接)、powertop(电源管理)数据库与系统监控:mytop(MySQL 性能)、htop/top/atop(系统运行参数)网络监控工具:netstat(网络统计)、tcpdump(数据包分析)、Telnet(远程登陆)、iptraf(实时网络统计)、iftop(带宽使用)网络 I/O 模型:I/O 多路复用技术(select/poll/epoll)原理对比Socket 与文件描述符的关联:文件描述符表、Socket 操作的底层映射多路复用实现:select/poll 的代码编写与性能瓶颈分析LT/ET 模式的区别:电平触发与边缘触发的事件处理逻辑事件驱动 reactor 模式:核心原理、组件设计与实现步骤reactor 模式对业务开发的优势:异步处理、高并发支持poll 封装:send_cb/recv_cb/accept_cb 的回调函数设计多核环境下 reactor 的优化:负载均衡与线程模型设计跨平台 reactor 封装:适配 select/epoll/kqueue 的统一接口网络组件集成:与 redis、memcached、nginx 的交互方案HTTP 服务器实现:协议解析、请求处理与响应构建reactor 中的缓冲区设计:sendbuffer 与 recvbuffer 的封装及 HTTP 协议适配HTTP 协议格式:请求行 / 头 / 体、响应结构与状态码有限状态机 FSM:HTTP 请求的分段解析实现其他协议支持:WebSocket 握手与帧处理、TCP 文件传输协议设计服务器百万并发实现:从理论到实操的关键配置与优化同步与异步数据处理的差异:阻塞 / 非阻塞模型对性能的影响网络 I/O 线程池:异步处理架构设计与任务调度系统参数调优:ulimit 提升 FD 上限、sysctl.conf 中 rmem 与 wmem 的内存配置连接追踪(conntrack):原理分析与大规模连接下的性能问题POSIX API 与网络协议栈的交互:从 API 调用到协议层的流程TCP 三次握手:connect、listen、accept 的角色与时机listen 参数 backlog:半连接队列与全连接队列的关系SYN 泛洪防范:SYN Cookie、队列长度调整等解决方案TCP 四次挥手:close 操作与连接终止的状态变化TCP 连接 11 种状态迁移:状态转换条件与异常处理close_wait 与 time_wait 堆积:产生原因与优化方案(端口复用、超时调整)心跳机制:TCP keepalive 与应用层心跳包的设计与对比TCP 核心机制:拥塞控制(慢启动、拥塞避免)与滑动窗口(流量控制)UDP 协议:可靠传输方案(QUIC)、优缺点与高并发设计QQ 早期选择 UDP 的原因:实时性、带宽占用与协议简化QUIC 协议:设计原理(0-RTT 握手、连接迁移)与开源方案 quicheKCP 协议:设计方案(快速重传、流量控制)与算法原理用户态协议栈:设计架构、适用场景(高性能场景)与实现原理开源框架参考:netmap 的工作模式与技术特点协议实现:eth 协议(帧处理)、IP 协议(路由与分片)、UDP 协议(数据报传输)辅助协议实现:ARP 协议(地址解析)、ICMP 协议(控制消息)应用层 POSIX API 适配:socket/bind/listen/accept/recv/send 的用户态实现TCP 核心机制:滑动窗口(流量控制)、慢启动(拥塞控制)解释定时器实现:重传定时器、坚持定时器、time_wait 定时器、keepalive 定时器epoll 用户态实现:数据结构设计、线程安全保证与 FD 就绪回调机制LT/ET 模式:用户态下的事件触发逻辑实现高性能异步 I/O:IO_uring 机制与 epoll 的对比IO_uring 系统调用:io_uring_setup(初始化)、io_uring_register(注册资源)、io_uring_enter(提交任务)liburing 与 IO_uring 的关系:封装库的功能与使用方式IO_uring 特性:共享内存机制、性能优势与适用场景IO_uring 操作实现:accept/connect/recv/send(网络)、读写(磁盘)的机制proactor 模式:基于 IO_uring 的实现方案线程池:手写实现与性能分析(项目实战)
异步处理场景:任务分发、并发任务执行核心组成:任务队列(生产者 - 消费者模型)、执行队列(线程管理)任务调度:回调函数设计与条件变量等待机制动态伸缩:线程数量根据任务量的调整策略扩展对比:nginx 线程池的实现方式与设计差异内存池:实现与场景分析(项目实战)
应用场景:高频内存分配、避免内存碎片分配策略:小块内存(链表管理)与大块内存(直接分配)的管理手写实现:结构体封装(元数据)与 API 设计(创建 / 分配 / 释放)内存泄漏防护:两种万能方法(资源管理对象、泄漏检测工具)定位工具:3 种常用工具(valgrind、addr2line、mtrace)的使用扩展对比:nginx 内存池的架构与优化MySQL 连接池:实现(项目实战)
性能影响因素:top 连接数控制、MySQL 认证流程优化连接管理策略:请求归还机制、超时未归还处理、断开重连方案连接数量优化:基于并发量的动态调整策略原子操作与锁:CAS 原理与锁实现(项目实战)
互斥锁:使用场景(临界区保护)与底层实现原理自旋锁:性能分析(忙等 vs 阻塞)与适用场景原子操作:汇编层面的实现(x86 指令)与内存序保证无锁消息队列:实现(项目实战)
性能对比:有锁与无锁队列的吞吐量与延迟内存屏障(Barrier):防止指令重排的原理与应用设计实现:数组无锁队列(环形缓冲区)、链表无锁队列(CAS 节点操作)网络缓冲区设计
RingBuffer:环形结构的读写指针操作与边界处理定长消息包:包头长度字段与数据解析ChainBuffer:链式结构的碎片整合与高效读写双缓冲区:前台写入与后台处理的切换机制定时器方案:红黑树、时间轮、最小堆(项目实战)
使用场景:定时任务、超时检测存储实现:红黑树(按时间排序)、时间轮(分层哈希)、最小堆(堆顶最小时间)分布式定时器:跨节点任务同步与触发机制死锁检测组件:手写实现(项目实战)
死锁原理:资源竞争与循环等待条件实现基础:pthread_mutex_lock/unlock 的 hook(dlsym 动态链接)检测逻辑:有向图构建(锁依赖)、DFS 环判断算法核心操作:lock_before(前置检查)、lock_after(记录依赖)、unlock_after(清除依赖)检测线程:定时扫描与死锁告警内存泄漏检测组件:手写实现(项目实战)
泄漏现象:第三方库与业务代码的泄漏差异实现基础:malloc/free 的 hook(dlsym 替换)检测策略:分配记录(地址、大小、堆栈)、释放校验、泄漏统计应用场景:单元测试、集成测试中的泄漏定位分布式锁:手把手实现(项目实战)
锁类型:互斥锁(资源独占)、自旋锁(短任务)异常处理:加锁超时、锁释放失败实现方案:非公平锁(先到先得)、公平锁(队列排队)异步日志方案 spdlog(项目实战)
性能瓶颈:同步写入、磁盘 I/O 阻塞设计实现:异步日志队列、批量写入、双缓存机制(前台写缓存,后台刷盘)可靠性保障:崩溃后的日志找回(缓存持久化)应用层协议设计 ProtoBuf(项目实战)
协议案例:IM、云平台、nginx、http、redis 的协议设计思路消息完整性:长度前缀、校验和、序列号机制实战:手撕 protobuf IM 通信协议的定义与使用核心原理:protobuf 的序列化(紧凑编码)与反序列化流程编码细节:字段类型、varint 编码、zigzag 编码原理Redis 命令详解:核心命令(字符串、哈希、列表等)的使用与底层原理分布式锁实现:基于 setnx 的方案、超时处理与可重入优化Lua 脚本:原子性保证(ACID 中的 A)与复杂逻辑封装Redis 事务:ACID 性质分析(弱一致性、隔离性)Redis 协议: RESP 协议格式与异步通信方式协议解析:请求 / 响应的编码与解码流程存储原理:数据模型(键值对)、对象编码(int、embstr 等)主从同步:复制流程(全量 / 增量同步)与对象模型同步集群与持久化:3 种集群方式(主从、哨兵、Cluster)、4 种持久化方案(RDB、AOF 等)数据结构实现:string(SDS)、list(双向链表)、hash(字典)、set(整数集合 / 哈希表)、zset(跳表)使用场景:日志收集、消息队列、流式处理设计原理:发布订阅模式与点对点消息传递的实现Kafka Brokers:集群架构、副本机制与 leader 选举Topics 和 Partitions:存储机制(分区日志文件)、分区策略消息查找:offset 索引与 message 的快速定位存储细节:日志分段、清理策略(日志保留 / 压缩)gRPC:微服务通信基石,内部组件(Channel/Stub)关联gRPC 异步实现:异步调用流程与回调处理回调方式:客户端 / 服务端的异步调用模式反向代理:配置原理与系统参数(worker_processes 等)优化静态文件配置:root/alias 指令、缓存策略、压缩配置动态接口代理:location 匹配、 upstream 负载均衡配置协议转发:Mqtt 协议、Rtmp 推拉流的代理配置Openresty 扩展:Redis 缓存数据代理的 lua 脚本实现模块开发:过滤器模块(请求 / 响应处理)、Handler 模块(请求处理)的实现负载均衡:策略(轮询、加权、IP 哈希)与健康检查核心数据结构:ngx_cycle_t(全局状态)、ngx_event_module_t(事件模块)Upstream 机制:请求分发、失败重试、超时设置的设计与实现多核并发编程:多线程(共享内存)、多进程(独立地址空间)、CSP 模型(通信顺序进程)、Actor 模型(消息驱动)Actor 模型实现:Lua 服务(轻量隔离)与 C 服务(高性能计算)的实现方式消息机制:消息队列设计(无锁队列)与 Actor 消息调度流程Skynet 网络层:封装细节(Socket 抽象)与 Lua/C 接口编程(API 使用)Reactor 网络模型:Skynet 中的封装与事件处理Socket 组件:Socket/SocketChannel 的连接管理与数据传输高性能开发:C 服务的编写规范与性能优化Lua 编程:基础语法与 Lua/C 接口(数据交互、函数调用)核心组件:
基础接口:Skynet.send(异步发送)、Skynet.call(同步调用)、Skynet.response(响应处理)广播组件:Multicastd 的组播实现数据共享:SharedData(内存共享)、DataSheet(配置表)项目实战:
万人同时在线游戏的架构设计与开发要点
Openresty:高性能 Web 网关的架构(Nginx+Lua)与优势Nginx 与 Lua 模块:集成方式(ngx_lua 模块)与 Lua API 使用数据交互:Openresty 访问 Redis(lua-resty-redis)和 MySQL(lua-resty-mysql)API 开发:Restful API 的设计规范与 Openresty 实现性能分析:瓶颈定位(CPU / 内存 / IO)与优化策略Kong:动态负载均衡(策略配置)与服务发现(与注册中心集成)技术整合:Nginx、Openresty 和 Kong 的功能边界与协同方案核心机制:动态负载均衡(权重调整)、服务发现(健康检查)的原理Serverless 架构:网关在无服务场景中的路由与触发运维保障:监控(metrics 收集)、故障检测(心跳)与恢复(自动切换)性能优化:代理层缓存(本地 / 分布式)、响应服务(压缩 / 合并)日志管理:系统日志的收集、分析与告警SPDK 文件系统:设计架构(用户态驱动)与实现流程硬件原理:NVMe 协议与 PCIe 总线的通信机制SPDK 组件:NVMe Controller 与 Bdev 的交互(RPC 通信)存储结构:Blobstore(块管理)与 Blob(文件抽象)的关系POSIX API 实现:Open/Write/Read/Close 的用户态适配四层结构设计 VFS:虚拟文件系统的接口封装异步改造:SPDK 的异步操作与 POSIX 同步 API 的兼容性能测试:承接 MySQL 业务的读写性能对比(与内核文件系统)优化方案:使用 LD_PRELOAD 替换 MySQL 系统调用(转向 SPDK 接口)I/O 性能:Iodepth 参数影响、随机 / 顺序读写的性能比较GPU 并行计算:CUDA 开发流程(核函数编写、数据传输)异构计算:CPU+GPU 的任务分工(串行 vs 并行)体系结构:GPU 的硬件组成(SM、线程束)与并行模型环境搭建:NVCC 编译器使用、SRUN 任务调度基础案例:CUDA 向量加法(内存分配、核函数调用)、矩阵乘法(共享内存优化)并行扩展:MPI 与 CUDA 的结合(多 GPU 通信)音视频应用:CUDA 在 H.264、MPEG 编解码中的并行计算FFmpeg 集成:CUDA 硬件加速的启用与使用5.6、物联网通信协议 MQTT 的实现框架 - MosquittoMQTT 适用场景:低带宽、高延迟的物联网环境核心模式:发布订阅模式(Broker 中转)的实现低带宽优化:消息压缩、QoS 等级适配QoS 等级:3 种等级(0 - 最多一次,1 - 至少一次,2 - 恰好一次)的实现安全认证:OAuth 授权、JWT 令牌的集成方案MQTT Broker:Mosquitto 的消息路由、会话管理特色机制:遗嘱消息(客户端异常断开通知)、发布订阅过滤器(通配符)部署与监控:Mosquitto 的 Docker 部署、日志实时监控(收集与分析)Docker 内核功能
namespace 隔离:进程(PID)、UTS(主机名)、IPC(进程通信)、网络(网络栈)、文件系统(挂载点)的隔离实现cgroup 资源控制:CPU、内存、IO 等资源的限制与配额Docker 容器管理与镜像操作
镜像管理:下载(pull)、运行(run)、构建(build)流程存储管理:镜像分层存储、容器数据持久化数据卷:命名卷、绑定挂载的使用与区别容器安全:capabilities 权限控制、镜像安全扫描网络驱动:5 种驱动(bridge/host/overlay 等)的适用场景跨主机通信:pipework 工具、0vS 的 vlan 划分与隧道模式、GRE 隧道实现Docker 云与容器编排
Dockerfile:语法规则(指令含义)与构建流程编排工具:Fig/Compose 的服务定义与启动管理Flynn 体系架构:容器云平台的组件与功能Docker 的变革:对软件开发、部署流程的影响k8s 环境搭建
集群安全:证书管理、RBAC 权限控制网络设置:CNI 插件选择、Pod 网络通信核心服务:API Server、etcd、Controller Manager、Scheduler 配置命令工具:kubectl 的常用命令与资源操作YAML 文件:语法规则(缩进、列表、映射)与资源定义Pod 与 Service 的用法
Pod 管理:创建、删除、扩容配置,健康检查(liveness/readiness)Pod 升级与回滚:滚动更新策略、版本控制DNS 服务:k8s 内部服务发现的实现(CoreDNS)7 层策略:Ingress 控制器与 TLS 安全配置(证书管理)k8s 集群管理的相关内容
Node 管理:节点添加、污点与容忍度、资源预留namespace:资源隔离机制与多租户支持日志管理:容器日志收集(fluentd)、存储与分析监控体系:metrics-server 指标收集、Prometheus+Grafana 可视化k8s 二次开发与 k8s API
RESTful 接口:资源操作的 HTTP 方法与 URL 规范API 聚合机制:扩展 API 的注册与访问API 组:版本控制与资源分类Go 访问 k8s API:client-go 库的使用(客户端创建、资源操作)单元测试框架:gtest 的测试用例编写、断言使用内存泄漏检测:gtest 结合内存检测工具的集成方案googletest 与 googlemock:测试文件组织、mock 对象模拟依赖测试覆盖:函数检测(是否执行)、类测试(方法覆盖)测试夹具(test fixture):共享测试环境的 setup/teardown类型参数化:通用测试逻辑的多类型适配事件测试:全局 / 测试套件级别的事件处理mock 功能:设置期望(ExpectCall)、参数匹配、调用次数验证性能测试工具:
数据库:mysqlslap(MySQL)、redis-benchmark(Redis)网络:wrk(HTTP)、TCPBenchmarks(TCP)系统性能分析:磁盘 IO、内存使用率、网络带宽的指标采集火焰图:生成原理(栈采样)、构建工具(perf+flamegraph)火焰图应用:nginx/MySQL/Redis 的性能瓶颈定位(热点函数)内核观测技术
内核 BPF:实现原理(虚拟机、JIT 编译)与演进(eBPF 的增强)观测维度:跟踪(函数调用)、嗅探、采样(统计)、可观测性定义动态 hook:kprobe(内核函数)/uprobe(用户态函数)的挂载与事件捕获静态 hook:tracepoint(内核静态点)和 USDT(用户态静态标记)的使用性能监控:PMC 模式(性能监控计数器)的 CPU 指标采集CPU 观测:taskset 的进程绑定与 CPU 使用率分析BPF 工具:bpftrace(脚本快速编写)、BCC(复杂工具开发)的使用内核功能观测:
内存:kmalloc 分配跟踪、vm_area_struct 虚拟内存布局文件系统:VFS 操作(open/read/write)状态磁盘 IO:bitesize(IO 大小)、mdflush(缓存刷新)监控应用观测:
网络流量:BPF 的流量统计(端口、协议)Redis 服务器:命令执行、连接状态的跟踪网络事件:tcp_connect/accept/close 的生命周期监控进程调度机制:QEMU 调试内存的方法(断点设置、内存查看)调度类:CFS(完全公平调度)与其他四类调度(实时、deadline 等)的原理task_struct 结构体:进程描述符的核心字段(状态、优先级、资源)RCU 机制:读 - 拷贝 - 更新的原理与内存优化屏障(memory barrier)内核内存管理:
虚拟内存地址布局:内核 / 用户态地址空间划分SMP/NUMA 模型:多处理器内存访问与本地内存优化页表:多级页表结构与页表缓存(TLB)原理伙伴系统:物理内存页的分配与释放实现块分配:Slab/Slub/Slob 的原理(对象缓存)与对比系统调用流程:brk/kmalloc/vmalloc 的底层实现文件系统组件:
虚拟文件系统(VFS):统一接口与各文件系统适配Proc 文件系统:内核信息导出的实现super_block(超级块)与 inode(索引节点)的结构体解析文件描述符:fd 表与文件挂载流程RocksDB 使用场景:与 kv 存储的差异(支持复杂操作)高级功能:前缀搜索、低优先级写入、生存时间(TTL)支持事务与存储:Transactions 实现、快照存储机制引擎特性:日志结构的数据库引擎(LSM 树)原理TiDB 存储引擎:权限管理:基于 RBAC 的角色与权限分配数据安全:传输与存储加密实现集群方案:Replication 原理(数据同步)TiDB 集群组件:TiDB Server(SQL 层)、PD Server(调度)、TiKV Server(存储)Raft 协议:分布式一致性的实现(领导者选举、日志复制)数据库类型:OLTP(在线事务)与 OLAP(在线分析)的支持存储特性:
同步机制:数据一致性保证线性扩容:新增节点的自动负载均衡高可用:副本机制与故障恢复负载均衡:数据分片与迁移策略数据存储:
基础结构:哈希表、列表的存储实现高级结构:SkipTable(有序)、RBTree(红黑树)的集成网络同步与事务:
序列化格式:数据传输的编码 / 解码方案事务管理:事务的创建、提交、回滚与释放线程安全:并发访问的同步机制内存管理:
优化策略:内存池使用、LRU 缓存(最近最少使用)实现分配策略:大块 / 小块内存的管理方案回收机制:内存泄漏防护与资源释放数据持久化:磁盘存储方案与恢复机制性能测试:
网络测试:TPS(每秒事务处理量)统计吞吐量:数据传输速率测试多语言支持:Go、Lua、Java 客户端的适配运维管理:
Crontab 定时任务:过期数据清理Docker 服务:容器管理与监控gRPC 连接池:连接复用与性能优化产品发布:
云服务器使用:资源配置与环境搭建测试工具:Fiddler(HTTP 请求监控)、Postman(接口模拟)性能测试:wrk(接口吞吐量)、JMeter(压力测试)功能实现:
用户认证:密码 + 混淆码的 MD5 匹配机制数据同步:好友列表与用户信息的全量 / 增量拉取消息机制:未读消息标记、单聊 / 群聊的消息推拉路由转发:消息的节点路由与分发策略核心模块实现:
网络模块:Socket 通信与协议解析地图模块:地图数据加载与坐标管理AOI 核心算法:视野范围内实体检测(九宫格 / 十字链表)战斗模块:技能释放、伤害计算与状态管理玩法实现:
TrinityCore 基础玩法的配置与扩展用户任务系统:任务接取、进度跟踪、奖励发放数据设计:数据配置文件与数据库表结构(用户数据、游戏配置)多人玩法:工会系统的创建、成员管理与功能实现frp 核心功能:
TCPMIUX 代理与 httpconnect 复用器的原理ssh/http/https 内网穿透的配置与实现AuthServerConfig 的 token 鉴权机制10.3、Go 客户端实现 Kubernetes 集群应用部署与更新前端开发:
Vue 组件化开发与 ElementUI 组件库的使用TypeScript 的 interface 类型定义与应用网络请求:
来源:走进科技生活