Rust Host baseline
Release buildを起動し、Tool Contract読込・socket bind・最初のhost.info応答までをstartupとして計測。RPCは製品と同じ1 request / connectionです。
PC Mini Toolsは、軽さを設計思想だけで語りません。共通基盤と各ツールを同じ条件で繰り返し測り、p50 / p95、sample数、測定環境を一緒に残します。
Host起動、Unix-domain socketのLocal RPC、アイドル時RSS。各ツールに共通する土台を独立して計測します。
Release buildを起動し、Tool Contract読込・socket bind・最初のhost.info応答までをstartupとして計測。RPCは製品と同じ1 request / connectionです。
Native Providerの起動や実際の処理時間はHostの数字だけでは分かりません。各ツールのfixtureとcritical pathを別に測ります。
1200×420px、日本語+英語の固定PNG。認識結果に期待文字列が含まれることを検証したsampleだけを採用しています。
Previewの文字列変換だけでなく、実ファイルを二段階transactionで移動し、Undoで全件を元へ戻すところまで測定します。
一時ディレクトリの実ファイル10,000件。literal replace + sequenceをProduction Host RPCで処理し、各sampleで全Preview行・全target・全Undo復元を検証します。
JSON・表・PDF・画像では読む量もparserも異なります。同じ`files.inspect` RPCで形式別fixtureを繰り返し、結果の正しさとp50 / p95を同時に記録します。
10,000-record JSON、10,000-row CSV/XLSX、200-page PDF、4032×3024 PNG寸法probe。ファイル選択時間や外部アプリ起動は測定に含めません。
一時ファイルを実際に保持する0・1・10個のプロセスを用意し、同じ`files.who-uses` RPCで毎回正しいPIDが見つかることを検証しながら測ります。
ファイルはdevice + inodeで照合。Providerはwarm状態で、通常ユーザーからアクセスできるプロセスとopen vnode file descriptorを走査します。
内容判定だけでなく、JSON整形、1,000行の表変換、日本語の文字幅正規化をProduction Host RPC経由で繰り返し、毎回結果も検証します。
約31 KiBの日本語・英語混在JSON、1,000行CSV、約55 KiBの幅混在テキスト。OSのクリップボードI/OはAdapter責務なのでTool固有時間から除外しています。
ベンチマークの目的は広告用の最小値を作ることではなく、変更によるregressionを見つけ、性能を継続的に改善することです。
入力サイズ、内容、実行経路を固定し、同じ作業を繰り返します。ツールに応じてcorrectness validationも同時に行います。
sample数を明示し、p50とp95を基本にします。cold / warmの意味が異なる処理は分けて記録します。
Benchmark Recordには環境、時刻、Git revision、dirty状態を記録。公開値はそのrecordから生成します。
未計測の機能に推測値は入れません。実装とbenchmark harnessが揃った時点で各機能ページへ自動的に結果を出します。