SuperAPI AI 工具集

memory-benchmark

数据与分析

查看项目

更新于 10-16 01:50

技能介绍

用途:在 Turso 中基准测试并分析内存使用,覆盖 SQL 工作负载在 WAL 与 MVCC 日志模式下的堆分配与进程 RSS。

主要能力:perf/memory crate 以 dhat 作为全局分配器跟踪每次堆分配,用 memory-stats 采集进程级 RSS;提供 memory-benchmark CLI、fts-memory 二进制、stack-report 栈使用报告工具,以及 perf/memory/analyze-dhat.py 分析脚本。内置工作负载包括 insert-heavy、read-heavy、mixed、scan-heavy、recursive-cte、series-blob、update-churn。

使用方式:基准测试须在 release 模式运行,例如 cargo run --release -p memory-benchmark -- --mode wal --workload insert-heavy -i 100 -b 100;MVCC 可加 --connections 4。每次运行在当前目录生成 dhat-heap.json,再用 python3 perf/memory/analyze-dhat.py dhat-heap.json --top 15 --modules 分析。FTS 查询分配用 cargo run -p memory-benchmark --features fts --bin fts-memory -- --query common --state warm --documents 10000 --queries 100 --dhat-file /tmp/fts-warm.json。栈报告用 cargo run --release -q -p memory-benchmark --features stacker --bin stack-report -- --sql path/to/payload.sql --top 40。

适用场景:定位内存高水位来源、排查泄漏、评估分配压力、比较 WAL/MVCC 与 GC 行为、FTS 查询分配回归跟踪。

限制:调试构建分配模式差异大,仅用于正确性验证;dhat 只统计显式堆分配,不含 mmap;RSS 含 dhat 自身开销;栈报告使用固定内存数据库,无数据库路径或实验特性开关;大索引用例耗时较长,CI 在编译期排除。更多细节见 perf/memory/README.md。