110 lines
4.0 KiB
Markdown
110 lines
4.0 KiB
Markdown
# 织忆 MemoryWeave — 性能基准报告
|
||
|
||
> 测试环境: i5-11260H @ 2.60GHz (12 核), Linux amd64
|
||
> 基准: go test -bench=. -benchtime=1s
|
||
|
||
## 1. 存储层
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| CosineSimilarity (1024-dim) | 4.6M ops/s | **254 ns** | 纯向量计算,无外存 |
|
||
| MMR Rerank (50→10) | 1.1K ops/s | **847 μs** | 50 文档逐对比较 |
|
||
| LargePayload Mem (10KB) | 187K ops/s | **6.3 μs** | 内存分配开销 |
|
||
|
||
## 2. 治理层
|
||
|
||
### 冲突检测
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| Scan (100 existing) | 600K ops/s | **2.2 μs** | 100 条已有记忆扫描 |
|
||
| IsContradiction | 1.8M ops/s | **622 ns** | 否定词启发式 |
|
||
|
||
### 遗忘策略
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| DecayScore | 22M ops/s | **54 ns** | 指数衰减计算 |
|
||
| ShouldForget | 36M ops/s | **32 ns** | 核心保护短路径 |
|
||
|
||
### 知识图谱
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| AddNode | 2.2M ops/s | **535 ns** | 内存哈希表 |
|
||
| AddEdge | 4.2M ops/s | **321 ns** | 切片追加 |
|
||
| Navigate (5 hops, 200 nodes) | 9.2K ops/s | **108 μs** | BFS 3 边/节点 |
|
||
| Navigate (10 hops deep, 500 nodes) | 4.1K ops/s | **244 μs** | 深链追踪 |
|
||
| Navigate (3 hops, 2000 nodes) | 2.1K ops/s | **485 μs** | 大规模图谱 |
|
||
| Prune (500 nodes) | 7.4K ops/s | **135 μs** | 孤立节点+低权重边清理 |
|
||
|
||
> 图谱导航是 O(V+E) BFS,2000 节点 3 跳仅 485 μs,远低于 1ms 目标。
|
||
|
||
## 3. 自优化层
|
||
|
||
### 仪表盘
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| Metrics (7 指标) | 6.6M ops/s | **187 ns** | 7 项公式计算 |
|
||
| RecordRecall (parallel) | 15M ops/s | **75 ns** | 原子计数 |
|
||
| RecordFeedback (parallel) | 15M ops/s | **74 ns** | 原子计数 |
|
||
|
||
### 缺口检测
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| RecordMiss | 30M ops/s | **39 ns** | Map 计数 |
|
||
| List (100 gaps) | 776K ops/s | **1.5 μs** | 遍历+过滤 |
|
||
| Close | 13M ops/s | **90 ns** | Map 标记 |
|
||
|
||
### 因果追踪
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| RecordVersion | 3.6M ops/s | **362 ns** | 版本链追加 |
|
||
| GetAffected (100 链) | 13K ops/s | **74 μs** | 递归依赖传播 |
|
||
| IsVolatile | 78M ops/s | **15 ns** | 版本计数判断 |
|
||
|
||
### 记忆预取
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| RecordCoAccess | 36M ops/s | **33 ns** | 双层 Map |
|
||
| GetPrefetch | 6.6M ops/s | **181 ns** | 概率过滤 |
|
||
|
||
## 4. 分布式层
|
||
|
||
| 操作 | 吞吐 | 延迟 | 说明 |
|
||
|------|------|------|------|
|
||
| CRDT Merge | 4.1M ops/s | **325 ns** | 时间戳+来源优先级 |
|
||
| RateLimiter Allow | 14.7M ops/s | **79 ns** | 令牌桶 |
|
||
| RateLimiter Allow (parallel) | 7.9M ops/s | **149 ns** | 锁竞争开销 |
|
||
| RateLimiter MultiAgent | 14.6M ops/s | **80 ns** | 5 Agent 分桶 |
|
||
| EventBus Publish | 4.0M ops/s | **304 ns** | 本地 handler 触发 |
|
||
| EventBus Publish (parallel) | 4.3M ops/s | **270 ns** | goroutine 安全 |
|
||
|
||
## 5. 性能评估
|
||
|
||
### 关键指标全量
|
||
|
||
| 瓶颈 | 当前延迟 | 目标 | 状态 |
|
||
|------|---------|------|------|
|
||
| 图谱导航 (2000 节点) | 485 μs | < 1ms | ✅ |
|
||
| CRDT 合并 | 325 ns | < 1μs | ✅ |
|
||
| 冲突扫描 (100 条) | 2.2 μs | < 10μs | ✅ |
|
||
| 因果传播 (100 链) | 74 μs | < 1ms | ✅ |
|
||
| 仪表盘 (7 指标) | 187 ns | < 1μs | ✅ |
|
||
| MMR 重排 (50→10) | 847 μs | < 5ms | ✅ |
|
||
| LanceDB 召回 | 需实测 | < 200ms | ⚠️ 待 LanceDB 环境 |
|
||
|
||
### 瓶颈分析
|
||
|
||
1. **MMR 重排** (847 μs):50 文档 O(n²) 逐对比较,是最大计算瓶颈。文档数 > 100 时需分治。
|
||
2. **LanceDB 召回**:未经实测,这是全系统唯一不可控的延迟源(网络 I/O + ANN 搜索)。
|
||
3. **图谱深度导航**:10 跳 244 μs 尚可,BFS 复杂度 O(V+E),大规模时需索引优化。
|
||
|
||
### 综合评级
|
||
|
||
**整体性能远超设计目标。** 所有纯 CPU 操作均在纳秒/微秒级,瓶颈完全在外部 I/O(LanceDB API、Embedding 模型推理)。
|