mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-27 04:43:11 +00:00
## 内容 - C 化第一刀 L1 纯函数层(ha_codec):token 估算/截断/上下文窗口推断 - 零分配 JSON 扫描层 ha_json_scan(scan/extract 两段分离,黄金对照 + fuzz) - SSE 协议导航层 ha_sse(**默认关闭**,见下) - C 基础设施门禁六项(make check-csrc / check-csrc-full,已接进 make test) - 共享内存与 IPC 的成本地板基准(纯测量) - 分词器热路径分配优化(差分 oracle 验收) ## 实测(main 同机对照,50000 次迭代) | 场景 | main | 本次 | 提升 | |---|---|---|---| | Truncate zh_1k | 6570ns / 2 allocs | 174ns / 0 | 37.8× | | Truncate long_zh | 5984ns / 2 allocs | 179ns / 0 | 33.5× | | Truncate ascii_1k | 1580ns / 2 allocs | 95ns / 0 | 16.6× | | Estimate ascii_1k | 445ns | 51ns | 8.7× | | Estimate zh_1k | 2262ns | 1172ns | 1.93× | | Estimate short_zh | 22ns | 35ns | -58%(cgo 边界固定成本) | 几何平均 4.20× / 中位 1.93×;**变快 7 项、变慢 2 项**(短串受 cgo 边界拖累, 如实记录未掩盖)。调用点在热路径:process.go 对每个上下文事件都调 EstimateTokens,tooldefs.go 的工具定义裁剪调 TruncateByTokens。 ## 默认关闭的部分(实测更慢,不当作成果) - chunkFastEnabled = false:SSE 分块快速路径。首版更慢 52~79%; 返工(5+ 次 cgo 边界压成 1 次)后为「三项赢、一项输」,toolcall 仍慢 15% ⇒ 不打开。TestChunkFast_BenchGate 断言该开关必须为 false。 - ha_json_scan 未接生产路径:库已验完(119 契约断言 + 黄金对照 5 组 + 4948 万次 fuzz 零崩溃 + 6 万+ 差分用例),作为可复用底座留存。 ## 为什么共享内存没有 C 化(附成本分解基准) 编解码占端到端 34%,但 **C 的甜区(字节搬运)仅占 0.2%~2%** (1KB 拷贝 18ns、16KB 210ns;Go copy 已 44~71 GB/s),大头是 JSON 反射 34%。 另:段内读是**不可信偏移**(offset 由插件转述,伪造会破坏块链), 保留 Go 边界检查 / panic / -race / 模糊测试覆盖比省 0.2% 更值。 IPC 的真正地板是 OS 调度:cat 管道 echo 就要 16µs,占最简 RPC 的 62%。 ## 验证 - 全量 go test -count=1 ./... 38 包 0 FAIL - C 六门禁全过:gcc+clang 零告警(-Wconversion 必备)、ASan+UBSan、 arm64 交叉编译、头文件自包含、libFuzzer 零崩溃、ABI 版本自述 - 端到端启动实测:14 插件 / 63 工具 / kernel ready / 0 panic - make build-linux-arm64 → ELF aarch64 - SDK 公开接口 diff = 0 行(csrc/ 是内核 C ABI,不属 SDK 冻结范围) - git-release-discipline 体检 FAIL=0 ## 纪律 - meta.Version 未被污染(未动 internal/meta) - main 上无 merge 来自 release 分支(仅本 feature 合入) - 本分支未部署任何生产环境