benchmark-01jpcvxfxe99ev6x7f60xvbk8t.md•2.05 kB
---
description: 掟プロジェクトのベンチマークテストの実施方法と原則に関するガイドライン
ruleId: benchmark-01jpcvxfxe99ev6x7f60xvbk8t
tags: [development, testing, benchmark]
aliases: [benchmark-rules]
globs: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "**/*.go", "**/*.rs", "**/*.scala"]
---
# ベンチマークの掟
## 基本原則
- ベンチマークは実際のユースケースを反映した多様なテストデータを使用する。
- 単純なケースから複雑なケースまで、様々な複雑さのデータを用意する。
- 複数の実装を比較する場合は、同じ条件でベンチマークするする。
- ベンチマーク結果は保存して、時系列での比較ができるようにする。
- 競合となるライブラリやアプリケーションと比較ができるようにする。
### データ複雑さとパフォーマンスの関係
- データの複雑さが増すにつれて、パーサー間のパフォーマンス差が拡大する。
- 単純なデータ型では差が小さいが、ネストされた複雑なデータでは大きな差が生じる。
- 特に再帰的な構造(配列やオブジェクトのネスト)の処理で差が顕著になる。
### ベンチマーク改善のポイント
- **多様なテストデータ**: 単純な値から複雑なネスト構造まで、様々なケースを用意。
- **完全なパーサー使用**: 部分的な機能ではなく、完全なパーサーを使用してベンチマーク。
- **結果の保存**: 日時付きのファイルに結果を保存し、時系列での比較を可能に。
- **エラー処理の考慮**: 正常系だけでなく、エラーケースのパフォーマンスも測定。
## ベンチマーク実行方法
実行しやすいように以下のスクリプトを作成して実行すること。
```bash
# ベンチマークの実行
./run-benchmark.sh。
```
ベンチマーク結果は言語・ツールによって変わる想定。