tag

内存管理

共 37 篇文章。
全部文章GoTypeScript游戏开发小游戏游戏设计Godot书稿RustPython性能优化游戏引擎PRDSaaS游戏服务端
系统编程

Zig 自定义分配器:从 Allocator 接口到内存池与组合

Zig 把内存分配显式化为一个可替换的接口:std.mem.Allocator 的 vtable 设计让 Arena、FixedBuffer、GPA、栈回退与内存池都能自由组合。本文讲解 Allocator 接口的本质与 vtable 结构、标准分配器家族的适用场景、GPA 的元数据与泄漏检测机制、如何从零编写自定义分配器、分配器包装(计数/日志/失败注入)以及真实项目中的场景化选型。

11 分钟阅读
Zig 内存管理 性能优化
database

内存管理与落盘:查询内存、spill to disk 与 OOM 防护

本文系统讲解 ClickHouse 的内存管理与落盘机制,从查询级与服务级内存限制参数出发,深入 spill to disk 外部聚合与排序、JOIN 内存策略与算法选择、标记缓存与查询缓存占用,并给出基于 system.query_log 的 OOM 排查步骤与熔断队列限额防护方案,最后附生产参数模板与速查表。实测 100GB 聚合可将单机 RSS 从 90GB 压到 12GB。

12 分钟阅读
ClickHouse 内存管理 性能调优
os

内存回收机制:LRU、水位与 OOM

内存回收是 Linux 内核在内存紧张时维持系统可用性的核心机制。本文从 LRU 四条链表与 lruvec 讲起,剖析页在 active 与 inactive 之间的迁移规则与 refault 距离估算,详解多代 LRU(MGLRU)的 generation 模型与调优参数,深入 kswapd 三水位、直接回收慢路径与分配标志,覆盖 swap、zswap、zram 三种交换后端对比,最后给出 PSI 压力指标、cgroup 内存回收与 OOM 排查清单。

12 分钟阅读
操作系统 Linux 内核
iOS 开发

iOS 性能调优与 Instruments 剖析

本文系统讲解 iOS 性能调优的度量闭环。从冷热启动界定入手,拆解 pre-main 的 dyld 链接与静态初始化、main 到首帧的关键路径;逐一给出 Time Profiler、Allocations、Leaks、Animation Hitches、Energy Log 等 Instruments 模板的采样姿势与读图方法;覆盖主线程阻塞与布局开销导致的掉帧、离屏渲染与内存峰值、SwiftUI 视图更新代价、CADisplayLink 帧率度量,以及 Organizer 中 MetricKit 上报的卡顿与崩溃指标,并给出常见性能坑清单与取舍结论。

10 分钟阅读
性能优化 内存管理
iOS 开发

Swift 内存管理与 ARC 循环引用

ARC 让 Swift 摆脱了手动内存管理,但循环引用、闭包捕获、Timer 持有这些坑依然普遍。本文从 ARC 的引用计数原理讲起,梳理 strong/weak/unowned 的语义与取舍,逐一拆解闭包捕获 self、delegate、Timer、NotificationCenter 四类典型泄漏场景,讲解捕获列表的写法、值类型与写时复制、autoreleasepool 的适用时机,并给出用 Instruments 的 Leaks/Allocations 定位泄漏的完整流程与常见坑清单。

9 分钟阅读
iOS Swift 内存管理