Capture current source, content data, tests, asset licenses, and original-specification traceability. Original implementation remains incomplete. The accepted matching UI generation passed 154 suites and 12,253 checks, with eight rendered staff-contract screens reviewed. Latest native Windows and full-original acceptance remain outstanding.
3.5 KiB
営業履歴スナップショットの軽量化試行
2026-09-29。P28。状態公開フェーズ内のスナップショット生成に注目し、OperationsCoordinatorの辞書キー二重文字列化を調査した。
同じデモ状態を復元した変更前・変更後のインスタンスを交互に200回ずつ測定し、全400回の出力辞書一致を確認。
- キー文字列を配列へ保存して再利用する案: 旧平均1570.25µs/P95 1660µs、新1652.045µs/P95 1725µs。約5.2%遅いため不採用。
- Stringキーのstr変換だけを省く案: 旧平均1570.865µs/P95 1613µs、新1621.955µs/P95 1663µs。約3.3%遅いため不採用。
両案を取り下げ、検証済み配布版のソースマニフェストと全ファイルの一致を確認。検証や保存の安全性を削って高速化したことにせず、製品コード変更0。
現行版を40サンプルずつ再計測: x1平均9734.7µs、x3 P95 34201µs。目標4000/12000µsは未達。スナップショット平均5156.8µs、うち営業集計スナップショット平均2048.2µs。前回の値との差は別実行のばらつきを含むため改善とは主張しない。
計測は小規模な使い捨てデモ、macOS headless、オートセーブ無効。同期Tickに遅延ダッシュボード更新を含むが、GPU描画やWindows、高負荷の最終受入ではない。
初回比較ドライバーは参照クラスの戻り値型が元クラス名のままでコンパイル失敗し停止。対象プロセスを終了し、参照ドライバーの戻り値注釈だけを調整して再実行。失敗ログはinitial-driver-error.logに保全。
次の調査対象は営業履歴全体に対する保存可否検査・正規化・コピーの各費用。検査省略や履歴の無断切捨てではなく、エラー優先順・深さ/ノード/文字数上限・正規順・所有権を維持した最適化が必要。
証拠: artifacts/operations-key-profile-2026-09-29/。before.gd.txt、参照ドライバー、却下した2案、paired JSON、current-baseline.json、verification.json。前回140スイート・通し97項目・配布版は変更されていない。
同一状態の工程別計測
200回、全回で元スナップショットとの一致を確認。計測用コピーへの時刻取得挿入による値であり、本番全体の改善率には使用しない。
| 工程 | 平均µs | P95 µs |
|---|---|---|
| 内部値の保存可否検査 | 694.115 | 714 |
| コレクション形状検査 | 1.340 | 2 |
| 出力項目の組立 | 38.825 | 41 |
| 出力検査・正規化・ソート | 805.315 | 829 |
内部検査と出力検査は異なる構造・上限を確認するため、そのまま重複とみなして削除できない。入力で不正な値が出力への変換で隠れるケースも保持が必要。
辞書キー型の配列内検索をmatchへ置換する第3案は、別の計測用コピーを用い、従来版と交互に200回ずつ比較。旧平均1563.045µs/P95 1605、新1596.075µs/P95 1647。約2.1%遅く、改善を確認できないため不採用。全400回の辞書一致。製品ソースは編集していない。
証拠: artifacts/snapshot-stage-profile-2026-09-29/ の計測ドライバー、stages.json、paired.json、各ログ、verification.json。最新配布版のソースマニフェストに記録された全ファイルのハッシュ一致を再確認。性能予算は引き続き未達。