---
generated_at: 2026-02-22 10:15:00
metrics:
  claims_total: 18
  claims_with_evidence: 18
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：14-rake_benchmark.md

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：18 / 18、根拠なし：0
- 優先レビュー（高）
  - なし（全ての主張に根拠あり）

## 2) 参照した情報（Evidence一覧）

- E-01: `tasks/benchmark.rake` 1-93行目
- E-02: `benchmark/plot.gpl` 1-6行目
- E-03: `benchmark/bm_*.rb`（6ファイル：bm_ao_render.rb, bm_app_lc_fizzbuzz.rb, bm_fib.rb, bm_mandel_term.rb, bm_so_lists.rb, bm_so_mandelbrot.rb）
- E-04: `docs/code-to-docs/バッチ一覧/バッチ一覧.csv` 15行目（No.14）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | BENCHMARK_REPEATは4回 | E-01 (L2: `BENCHMARK_REPEAT = 4`) | ○ |
| C-02 | bm_*.rbファイルをglobで取得 | E-01 (L8: `Dir.glob("#{MRUBY_ROOT}/benchmark/bm_*.rb").sort`) | ○ |
| C-03 | build_config_nameからビルド設定名を取得 | E-01 (L12-14) | ○ |
| C-04 | PNGファイルをbenchmarkディレクトリに出力 | E-01 (L17: `File.join(MRUBY_ROOT, 'benchmark', "#{build_config_name}.png")`) | ○ |
| C-05 | gnuplotでグラフを生成する | E-01 (L37: `cmd = %Q{gnuplot -p -e "#{opts}"}`) | ○ |
| C-06 | plot.gplの設定を読み込む | E-01 (L24: `File.read(opts_file)`) | ○ |
| C-07 | ヒストグラムスタイルで描画 | E-01 (L33: `w hist title columnheader(1)`), E-02 (L4: `set style histogram errorbars gap 2 lw 1`) | ○ |
| C-08 | benchmark_enabled?かつ!internal?のターゲットが対象 | E-01 (L54: `next if !target.benchmark_enabled? \|\| target.internal?`) | ○ |
| C-09 | time -pでreal/user/sys時間を計測 | E-01 (L71: `%x{(time -p #{mruby_bin} #{bm_file}) 2>&1 >/dev/null}`) | ○ |
| C-10 | (user + sys) / 2 で計測値を算出 | E-01 (L76: `data.map {\|_,r,s\| (r + s) / 2.0}`) | ○ |
| C-11 | 平均/最小/最大を算出してdatファイルに記録 | E-01 (L77-80) | ○ |
| C-12 | datファイルの形式は「名前 平均 最小 最大」 | E-01 (L80: `f.puts "#{bm_name.gsub('_', '-')} #{avg} #{min} #{max}"`) | ○ |
| C-13 | 対象ターゲットが存在しない場合エラー | E-01 (L21: `raise "no build target to benchmark against" if $dat_files.empty?`) | ○ |
| C-14 | 進捗はベンチマーク名を表示 | E-01 (L67-68: `print bm_name; puts "..."`) | ○ |
| C-15 | 結果出力メッセージを表示 | E-01 (L49: `puts "Benchmark results output to #{plot_file}"`) | ○ |
| C-16 | グラフはPNGcairo形式1400x1024 | E-02 (L2: `set terminal pngcairo font 'Sans, 8' lw 1 size 1400,1024`) | ○ |
| C-17 | ベンチマークファイルは6つ存在 | E-03 | ○ |
| C-18 | datファイルのパスはbenchmark/{config_name}/{target_name}/ | E-01 (L60: `File.join('benchmark', build_config_name, target.name)`) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし。全ての主張にソースコードの根拠が存在する。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全ての主張がソースコードにより裏付けられている

## 6) レビュアーチェックリスト（最小）
- [ ] BENCHMARK_REPEATの値（4回）が正しいか確認
- [ ] gnuplotの出力設定がplot.gplと一致しているか確認
- [ ] time -pの出力パース処理が正しく記述されているか確認
- [ ] (user + sys) / 2 の算出ロジックが正しいか確認（real時間を使用しない点）
