用途:为在单台低算力机器上处理可能超出 RAM 的数据集提供最佳实践参考,面向 ETL、数据工程与批处理中的扫描、过滤、聚合、排序、连接等 I/O 密集型工作。规则按执行生命周期影响从高到低排序,优先优化表格靠前的条目。
主要能力:分为九类并按优先级排列——内存纪律(mem-,关键)、I/O 访问模式(io-,关键)、数据格式与编码(fmt-,高)、分块与批处理(batch-,高)、落盘与外部内存(spill-,高)、流水线与背压(pipe-,中高)、压缩与序列化(codec-,中)、I/O 密集型并发(conc-,中)、可观测性与吞吐调优(obs-,中低)。示例代码使用 Python,其推理可推广到其他生态(Arrow C++/Rust/Java、Polars Rust、DuckDB、libuv 风格异步)。
使用方式:按问题匹配入手点,例如“流式任务中内存线性增长”看 mem- 与 pipe-,“磁盘 100% 忙但 CPU 空闲”看 io-,“数据放不进 RAM”看 spill-,“加了 worker 也没用”看 conc- 与 obs-,“慢但不知道原因”先做 obs- 测量再改。
适用场景:单机低算力下 OOM、swap、远慢于预期;输入大于 RAM;管道存在无界缓冲;逐行 RTT 写入;格式/编解码/序列化选型;CPU 低而 iowait 高。
限制:不覆盖算法原语本身(见 computer-science-algorithms)、超出单机的分布式计算(用 Spark/Dask)及数据库引擎内部(见官方文档)。