Chen3feng's Blog

深入二进制系列:C++ 全局优化技术简史

编译器的 -O2 / -O3 已经很努力了,但它有两个天生的盲区:看不远(优化卡在单个翻译单元的边界上)、看不到未来(不知道程序真正跑起来是什么样)。这篇文章把 PGO、LTO/ThinLTO、AutoFDO、LLVM-BOLT 串成一条线——它们其实都在干同一件事:一步步把优化器的视野放大,直到放大到「已经链接成型的二进制」本身。 最近给 blade 构建系统补三平台支持时,我把...

在 Wine 里打开并读一个文件,到底发生了什么

一个 Windows 程序编译成 PE,Linux 的库编译成 ELF——两种格式天差地别,本来连放进同一个可执行文件都做不到。可 Wine 跑起来后,Windows 程序里一句 CreateFile + ReadFile,最终却落到了 ELF 里的 open()、read()。这中间到底经过了什么?拆开来看,背后藏着三种不同的”跨界”机制:进程内的 NT 系统调用门、进程内的 uni...

逛 GitHub 逛到的一个项目:一个人 4 个月、88 万行、一个 AI 造出来的编译器

一个叫 Perry 的项目:把 TypeScript 直接 AOT 编成原生二进制,性能贴着 Rust / C++。但比技术更让我吃惊的,是这 88 万行代码——一个人借助 AI,在四个半月里写了出来。从 NaN-Boxing、隐藏类到自研 GC,再到一点关于「AI 正在改写软件开发方式」的感想。 我有个习惯:平时爱逛 GitHub,刷到觉得有意思的项目就顺手 star 一下。可说...

终端多行进度条是怎么实现的

错误信息往上滚、多行进度条永远停在最后、还一秒一跳——还不会被错误信息撞乱。 这件事在 Bazel、Docker、Cargo 里见过无数次,单行 \r 的小把戏明显不够用。中文社 区几乎没人讲透,我顺手研究了一下,把”擦帧—写消息—重画”这一套从 VT100 起源讲到 tqdm 与 Blade 的实际代码(包括 Windows 上必须自己开启 VTP 这件事),最后给一个 50 行的 ...

我用 AI 读完了 vLLM 源码,写了一份深度分析笔记

最近花了些时间,用 AI 辅助系统性地阅读了 vLLM 的源码,整理成了一份深度分析文档集: 👉 vllm-analysis 为什么读 vLLM 源码 我是一名资深后台开发工程师,过去十几年一直在做服务端性能优化和系统架构——CPU 缓存行对齐、内存池设计、无锁队列这些是日常。进入 AI 时代,技能栈需要升级,但回头一看,LLM 推理引擎这个方向其实最对味:它本质上是显存管理 + 算子...

© chen3feng. Some rights reserved.

Using the Chirpy theme for Jekyll.