Skip to content

feat(perf-runner): Android preflight stabilize + multi-run median 集計#99

Merged
OJII3 merged 13 commits into
mainfrom
perf/android-stabilize-and-aggregate
Jun 29, 2026
Merged

feat(perf-runner): Android preflight stabilize + multi-run median 集計#99
OJII3 merged 13 commits into
mainfrom
perf/android-stabilize-and-aggregate

Conversation

@OJII3

@OJII3 OJII3 commented Jun 28, 2026

Copy link
Copy Markdown
Owner

本 PR は 2026-06-27-android-bottleneck-investigation.md の Next action 2 (B': run-to-run variance 10× の安定化) の perf-runner 拡張です。

変更内容

tools/rosettadds-perf-runner に 3 フラグを追加:

  • --stabilize-device: 計測前 Android device の状態を軽量リセット (screen on wakelock + WiFi recycle + host 接続待機)
  • --repeat <N>: 各 scenario を N 回連続 run (default 1, median 集計対象)
  • --aggregate <median>: multi-run 時の集計方法 (default median)

新規クラス:

  • DeviceStabilizer (Android 軽量 preflight)
  • MetricsParser (NDJSON → measure_done metrics)
  • RunAggregator (N runs median 集計)

計測検証

実機 (Sony XIG04, Android 15) で 9 scenario × 3 runs を実施。新機能 (perf-runner 拡張) は全て期待通り動作を確認:

  • 全 27 runs 完走
  • RepeatCount: 3 が manifest.json に正しくセット
  • stabilize 失敗は best-effort で catch して続行
  • aggregate 計算は measure_done event 不在時に Aggregate: null (正常系動作)

ただし measurement 自体は 既存 findings の B 問題 (Android → helper discovery 不通) により全 9 scenario で失敗 (helper received = 0)。variance 縮小効果の検証は B 問題修正後の再計測が必要。

テスト

  • 新規 70 件の xUnit テスト (TDD: テスト先書 → FAIL → 実装 → PASS)
  • 既存 perf-runner.Tests 全 PASS (回帰なし)
  • 既存 tests/rosettadds.Tests 553 件 全 PASS (回帰なし)
  • ビルド tools/rosettadds-perf-runner 0 warning / 0 error

Design / Plan / Findings

  • Design: docs/superpowers/specs/2026-06-28-android-stabilize-aggregate-design.md
  • Plan: docs/superpowers/plans/2026-06-28-android-stabilize-aggregate.md
  • Findings: docs/superpowers/specs/2026-06-28-android-stabilize-aggregate-findings.md

Scope

In: 上記 3 フラグ + 3 新規クラス + 70 テスト + findings doc

Out (別 PR):

  • Device リブート (副作用大、boot に 30-60 秒)
  • Permission 自動許可 / cache クリア
  • svc power stayon の権限問題対応 (Android 12+ の WRITE_SECURE_SETTINGS)
  • B 問題 (discovery) 修正 + 本 PR の効果再検証
  • Desktop 側 stabilization

@OJII3 OJII3 changed the title test(perf-runner): RunAggregator の MedianLong / 全メトリクス / Save のテストを追加 feat(perf-runner): Android preflight stabilize + multi-run median 集計 Jun 28, 2026
@OJII3 OJII3 merged commit 886ddbe into main Jun 29, 2026
1 check passed
@OJII3 OJII3 deleted the perf/android-stabilize-and-aggregate branch June 29, 2026 05:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant