yaml-vs-json-tokens

このページは FormatArc のブログ記事が引用している実測の生データです。検索結果には表示されません (noindex)。

Files

FileSize
README.md1.1 KB
measure.py2.8 KB
results.json551 B
sample.json857 B
sample.yaml667 B

README.md

# YAML vs JSON: size (chars/bytes) and token cost

`yaml-json-difference` 記事のサイズ比較・LLM トークン比較の一次ソース。
同一データ (32 行の web サーバー/K8s 風サンプル) を YAML / pretty JSON /
compact JSON で表現し、文字数・バイト数・tiktoken トークン数を比較する。

## 実行環境

- Apple M5 Pro / macOS (Darwin 25.5.0)
- Python 3.14 + tiktoken 0.13.0 (`cl100k_base` / `o200k_base`)

## 再現手順

```bash
cd scripts/benchmarks/yaml-vs-json-tokens
python3 -m venv venv
./venv/bin/pip install tiktoken
./venv/bin/python measure.py
```

## 実測結果 (2026-07-13 再測定、初回 2026-06-23 と同値)

| format | chars | bytes | cl100k | o200k |
|---|---|---|---|---|
| JSON (pretty, indent=2) | 857 | 857 | 281 | 281 |
| YAML | 667 | 667 | 218 | 217 |
| JSON (compact) | 686 | 686 | 180 | 183 |

- YAML vs JSON (pretty): chars -22.2% / cl100k -22.4% / o200k -22.8%
- YAML vs JSON (compact): chars -2.8% / cl100k +21.1% / o200k +18.6%

記事本文の数値は `results.json` と完全一致させること。

results.json

{
  "topic": "YAML vs JSON size and token cost (same 32-line web/K8s-style sample)",
  "environment": {
    "machine": "Apple M5 Pro (macOS, Darwin 25.5.0)",
    "python": "3.14.6",
    "tiktoken": "0.13.0"
  },
  "rows": {
    "JSON (pretty)": {
      "chars": 857,
      "bytes": 857,
      "cl100k": 281,
      "o200k": 281
    },
    "YAML": {
      "chars": 667,
      "bytes": 667,
      "cl100k": 218,
      "o200k": 217
    },
    "JSON (compact)": {
      "chars": 686,
      "bytes": 686,
      "cl100k": 180,
      "o200k": 183
    }
  }
}