# 性能試験レポート (2026-03-12)
## 概要
タスク数の増加に伴うアプリケーションの処理性能の変化を検証した。特に、書き込みのたびに発生する SQLite と JSON の同期処理(全件書き出し)の影響を重点的に確認した。
## 計測結果
| 100件 | ~8.9 ms | ~0.8 ms | ~27 ms |
| 1000件 | ~80.2 ms | ~8.1 ms | ~304 ms |
| 5000件 (推計) | ~400.0 ms+ | ~40.0 ms+ | ~1.5 s+ |
## 分析
1. **書き込み性能の線形劣化:**
タスク数が増えるにつれ、1件あたりの追加時間が線形に増加($O(n)$)している。これは、1件の追加ごとに全タスクを `tasks.json` へシリアライズ・ファイル書き出ししていることが原因である。
2. **読み込み性能:**
SQLite からの取得およびメモリ上のツリー構築は極めて高速であり、数千件規模でもボトルネックにはならない。
3. **実用限界:**
現状の同期戦略では、1,000件を超えると体感できる遅延が発生し始める。5,000件を超えると CLI ツールとしての快適性が著しく損なわれる可能性がある。
## 改善後の計測結果 (2026-03-12 - 1タスク1ファイル方式)
JSON 永続化戦略を「1タスク1ファイル(Git方式)」へリファクタリングした後の結果。
| 100件 | ~0.4 ms | ~0.8 ms | ~34 ms |
| 1000件 | ~0.37 ms | ~9.2 ms | ~360 ms |
| 5000件 | ~0.34 ms | ~49.7 ms | ~1.7 s |
## 最終分析
1. **書き込み性能の $O(1)$ 化達成:**
リファクタリングにより、タスク数に関わらず1件あたりの追加・更新時間が一定(1ms未満)となった。1000件時で以前の約200倍、5000件時(推計)で約1000倍以上の高速化を達成した。
2. **Gitコンフリクトの解消:**
ファイルがタスクごとに独立したため、物理的に異なるタスクへの変更が衝突することがなくなった。
3. **運用性:**
`.gitattributes` により、GitHub等での差分表示も整理され、大規模プロジェクトでの実用性が極めて高い状態となった。