摘要: 专业知识的应用01.为什么要写这个项目 前言 在 C++ 的招聘和实际工作中,经常能听到一种说法:为什么 C++ 程序员难招? 原因之一在于,C++ 应用的领域非常广——游戏引擎、嵌入式、自动驾驶、音视频……不同方向用到的专业知识千差万别。 会写 C++ 语法和会做某个领域内的系统,往往是两回事。 所以本章想做的,不是再讲一遍课本上的理论 阅读全文
posted @ 2026-01-31 14:36 ToBrightmoon 阅读(0) 评论(0) 推荐(0)
摘要: Linux下的内存管理:03.jemalloc 实战性能测试:当多线程遇上小对象分配 前言 在前两篇文章中,我们分别讨论了: 从一次 malloc 到缺页中断、内核页表、VMA 的完整路径; jemalloc 内部的 Arena / TCache / Slab / Extent 设计与源码结构。 从理论上我们已经知道: 在多线程、小对象、高频分配/释放的负载下,jemalloc 一定 阅读全文
posted @ 2025-11-15 08:04 ToBrightmoon 阅读(40) 评论(0) 推荐(0)
摘要: Linux下的内存管理:02.深入jemalloc,多线程内存分配器的结构与算法 前言 在上一篇《从 malloc 到缺页中断》中,我们深入探索了 malloc 与内核的“垂直”交互:程序如何通过 brk/mmap 申请虚拟内存(VMA),以及如何在第一次写入时触发“缺页中断”(Page Fault),最终获得物理内存。 在这篇文章中,我们将讲解jemalloc这个被redis, 阅读全文
posted @ 2025-11-08 13:03 ToBrightmoon 阅读(108) 评论(0) 推荐(0)
摘要: Linux下的内存管理:01.从 malloc 到缺页中断——一次完整的内存分配剖析 前言 在之前的文章中,我们讲述了,从源码到进程中的过程,了解了源码是怎么变成进程,linux系统是怎么使用静态库与动态库的。 在这个小节我们就开始一个新的篇章,准备对linux的内存管理下的相关内容进行分析,了解Linux下的内存管理机制。 本篇内容就从最基础的malloc开始,讲述malloc背后 阅读全文
posted @ 2025-11-01 14:49 ToBrightmoon 阅读(52) 评论(0) 推荐(0)
摘要: 从源码到进程:05.可执行程序的装载与启动 前言 在之前的文章中,我们详细讲解了linux系统下动态库的实现机制,并且通过gdb调试验证了动态库加载的过程。 在这篇文章中,我们将继续从源码到进程这个主题,详细讲解linux下,一个磁盘上的可执行文件,是怎么变成运行在内存上的进程的,也就是可执行程序的装载过程。 Linux中的进程 要理解这个装 阅读全文
posted @ 2025-10-23 06:57 ToBrightmoon 阅读(38) 评论(0) 推荐(0)
摘要: 从源码到进程:04.动态库的生成与使用,解密延迟绑定与重定位机制 动态库的生成与使用,解密延迟绑定与重定位机制 前言 在之前的文章中,我们讲解了实际静态库的生成与使用,说明了目标文件是怎么生成静态库的,并且说明了一个程序是怎么连接使用静态库的。 在实际的开发中,我们还会经常使用另一种文件 .so 文件,也就是动态库,本文就讲继续讲解动态库是生成与使用的,你将学会: 阅读全文
posted @ 2025-10-16 06:59 ToBrightmoon 阅读(28) 评论(0) 推荐(0)
摘要: 从源码到进程:03.静态库的生成与使用 从目标文件到静态库:符号索引与链接的秘密 前言 在前一篇文章中,我们讲解了目标文件(Object File, .o)的生成过程,理解了编译器如何将源代码翻译成机器可读的中间产物,以及目标文件的内部结构。 然而,在实际的软件开发中,我们很少直接使用 .o 文件。 大多数情况下,这些目标文件会被进一步打 阅读全文
posted @ 2025-10-10 08:11 ToBrightmoon 阅读(38) 评论(0) 推荐(0)
摘要: 从源码到进程:02.目标文件的生成 前言 在之前的文章中,我们初步讲解了从源码到进程这个主题的预处理部分,在这篇文章中,我们将讲解目标文件(.o)的生成过程。 通过了解 .o文件,可以帮助我们: 定位 undefined reference / multiple definition 等链接错误的根源 理解重定位失败与对齐问题导致的运 阅读全文
posted @ 2025-09-26 07:22 ToBrightmoon 阅读(149) 评论(0) 推荐(0)
摘要: 从源码到进程:01.程序的预处理 前言 在这个系列中,我们准备从 源码到进程 这个角度去分析,在 Linux 平台下,一个项目的文件,究竟是怎么一步步变成可执行文件,然后最终变成一个进程的。 开篇我们从最简单、大家最熟悉的一个阶段说起:预处理。 从编译四步走说起 一个广为认知的理论是: 预处理 → 编译 → 汇编 → 链接 这是 C 阅读全文
posted @ 2025-09-19 07:43 ToBrightmoon 阅读(16) 评论(0) 推荐(0)
摘要: coredump的那些事:04.多线程程序的调试 前言 在之前的文章中,我们依次讲解了 coredump的配置与生成 gdb使用coredump进行调试 DWARF调试信息的生成与使用 但是之前的程序都是简单的单线程程序,但是实际中我们面临的更多的是多线程下的崩溃问题,相比于单线程程序 多线程因为以下原因更加复杂: 程序在不同线程中同时执行 崩溃的 阅读全文
posted @ 2025-09-12 07:52 ToBrightmoon 阅读(53) 评论(0) 推荐(0)

© ToBrightmoon. All Rights Reserved.

Powered by Cnblogs & Designed with ❤️ by Gemini.

湘ICP备XXXXXXXX号-X