lspz 0.9.2

AI-friendly LSP compression proxy
Documentation
# lspz 压缩基准测试报告

**版本**: v0.9.0

**日期**: 2026-05-12

## 诊断压缩器

| 场景 | 原始 (T) | 紧凑 (T) | TOON (T) | Δ% (紧凑 vs 原始) | Δ% (TOON vs 原始) | Δ% (TOON vs 紧凑) |
|----------|---------|-------------|----------|---------------------|-------------------|----------------------|
| 小型(3 个诊断,一对重复) | 158 | 89 | 75 | 43.7% | 52.5% | 15.7% |
| 中型(15 个诊断,混合重复和唯一) | 746 | 316 | 260 | 57.6% | 65.1% | 17.7% |
| 大型(60 个诊断,许多重复 — TypeScript 诊断洪水) | 2983 | 625 | 575 | 79.0% | 80.7% | 8.0% |
| **总计** | **3887** | **1030** | **910** | **73.5%** | **76.6%** | **11.7%** |

## 补全压缩器

| 场景 | 原始 (T) | 紧凑 (T) | TOON (T) | Δ% (紧凑 vs 原始) | Δ% (TOON vs 原始) | Δ% (TOON vs 紧凑) |
|----------|---------|-------------|----------|---------------------|-------------------|----------------------|
| 小型(5 项) | 174 | 178 | 157 | -2.3% | 9.8% | 11.8% |
| 中型(15 项,一些共享文档) | 562 | 566 | 475 | -0.7% | 15.5% | 16.1% |
| 大型(30 项,各种种类) | 889 | 893 | 719 | -0.4% | 19.1% | 19.5% |
| **总计** | **1625** | **1637** | **1351** | **-0.7%** | **16.9%** | **17.5%** |

## 悬停压缩器

| 场景 | 原始 (T) | 紧凑 (T) | TOON (T) | Δ% (紧凑 vs 原始) | Δ% (TOON vs 原始) | Δ% (TOON vs 紧凑) |
|----------|---------|-------------|----------|---------------------|-------------------|----------------------|
| 纯文本(简单) | 60 | 59 | 44 | 1.7% | 26.7% | 25.4% |
| Markdown(丰富) | 159 | 156 | 141 | 1.9% | 11.3% | 9.6% |
| 对象 MarkedString(语言 + 值形式) | 33 | 33 | 7 | 0.0% | 78.8% | 78.8% |
| **总计** | **252** | **248** | **192** | **1.6%** | **23.8%** | **22.6%** |

## 文档符号压缩器

| 场景 | 原始 (T) | 紧凑 (T) | TOON (T) | Δ% (紧凑 vs 原始) | Δ% (TOON vs 原始) | Δ% (TOON vs 紧凑) |
|----------|---------|-------------|----------|---------------------|-------------------|----------------------|
| 小型(3 个文档符号,浅层) | 454 | 267 | 150 | 41.2% | 67.0% | 43.8% |
| 中型(SymbolInformation 扁平,10 个符号) | 474 | 469 | 84 | 1.1% | 82.3% | 82.1% |
| 大型(DocumentSymbol 层次结构,25 个嵌套符号) | 1169 | 670 | 352 | 42.7% | 69.9% | 47.5% |
| **总计** | **2097** | **1406** | **586** | **33.0%** | **72.1%** | **58.3%** |

## 总结

| 压缩器 | 平均 Δ% (紧凑 vs 原始) | 平均 Δ% (TOON vs 原始) |
|------------|------------------------|----------------------|
| 诊断压缩器 | 73.5% | 76.6% |
| 补全压缩器 | -0.7% | 16.9% |
| 悬停压缩器 | 1.6% | 23.8% |
| 文档符号压缩器 | 33.0% | 72.1% |
| **总体** | **26.8%** | **47.3%** |

每个 LSP 服务器产生的诊断都有独特的模式。下表显示了诊断压缩器如何处理每个支持的 LSP 服务器的真实世界输出。

### rust-analyzer

| 场景 | 原始 (T) | 紧凑 (T) | TOON (T) | Δ% (紧凑 vs 原始) | Δ% (TOON vs 原始) | Δ% (TOON vs 紧凑) |
|----------|---------|-------------|----------|---------------------|-------------------|----------------------|
| 小型(3 个诊断,2 个未使用变量 + 未解析引用) | 159 | 89 | 75 | 44.0% | 52.8% | 15.7% |
| 中型(10 个诊断,混合重复 + 唯一) | 507 | 247 | 203 | 51.3% | 60.0% | 17.8% |
| 大型(25 个诊断,许多重复 — 真实世界洪水) | 1256 | 535 | 435 | 57.4% | 65.4% | 18.7% |
| **总计** | **1922** | **871** | **713** | **54.7%** | **62.9%** | **18.1%** |

### gopls

| 场景 | 原始 (T) | 紧凑 (T) | TOON (T) | Δ% (紧凑 vs 原始) | Δ% (TOON vs 原始) | Δ% (TOON vs 紧凑) |
|----------|---------|-------------|----------|---------------------|-------------------|----------------------|
| 小型(4 个诊断,2 个未使用变量 + import + 类型) | 210 | 105 | 84 | 50.0% | 60.0% | 20.0% |
| 中型(13 个诊断,高去重潜力) | 639 | 199 | 167 | 68.9% | 73.9% | 16.1% |
| 大型(20 个诊断,真实 gopls 输出) | 980 | 311 | 256 | 68.3% | 73.9% | 17.7% |
| **总计** | **1829** | **615** | **507** | **66.4%** | **72.3%** | **17.6%** |

### basedpyright

| 场景 | 原始 (T) | 紧凑 (T) | TOON (T) | Δ% (紧凑 vs 原始) | Δ% (TOON vs 原始) | Δ% (TOON vs 紧凑) |
|----------|---------|-------------|----------|---------------------|-------------------|----------------------|
| 小型(4 个诊断,混合类型) | 219 | 146 | 122 | 33.3% | 44.3% | 16.4% |
| 中型(10 个诊断,混合重复) | 526 | 265 | 218 | 49.6% | 58.6% | 17.7% |
| 大型(20 个诊断,真实 pyright 输出) | 1035 | 485 | 402 | 53.1% | 61.2% | 17.1% |