知識マップ: Windowsでプログラムのバージョン別速度を正しく比較する方法

記事「Windowsでプログラムのバージョン別速度を正しく比較する方法」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は、Windows上でプログラムのバージョン間の速度を比較する際の再現性をテーマに、Power mode(オーバーレイ)とPower planという2層の電源設定を固定・記録することが前提になることを示す。Power modeの違いはコア駐車などPPMの挙動を左右し、Modern Standby対応デバイスではPower planの選択肢自体がBalanced系に制限される。検索インデックスやDefenderのスキャン、通知といったバックグラウンド処理は測定値のブレの原因になり得るため、除外設定やクリーンブート、通知の抑制で軽減する。Wall-clock time・CPU time・Cycle countをQueryPerformanceCounter・GetProcessTimes・QueryProcessCycleTimeでそれぞれ計測し、差が小さく理由が読めない場合はWPRでETWトレースを取りWPAで比較することが推奨される。

Windowsベンチマーク比較の再現性の知識マップPower modeとPower planという2層の電源設定を固定・記録することがベンチマークの再現性の前提になること、検索インデックスやDefenderスキャンなどのバックグラウンド処理が測定値のブレを生み除外設定やクリーンブートで軽減できること、Wall-clock time・CPU time・Cycle countをそれぞれ専用APIで計測すること、差が小さいときにWPRとWPAで原因を掘り下げる流れを示す図前提とする前提とするで構成できる両立しないで構成できる原因になり得る軽減する軽減する軽減する利用する利用する前提とする推奨される対応で確認できるで確認できるで確認できるで構成できるで構成できる前提とする利用する利用する利用する両立しない原因になり得る利用するベンチマークの再現性電源モード/電源プラン(PPM)Power plan(電源プラン)powercfgModern Standby対応デバイスCore Parking検索インデックス作成ベンチマーク結果のばらつき(ブレ)除外設定(フォルダー除外)クリーンブート(clean boot)Do not disturb(通知の抑制)Windows Performance Recorder(WPR)ETW(Event Tracing for Windows)Windows Performance Analyzer(WPA)差が小さい・理由が読めないベンチマーク結果Wall-clock time(実時間)QueryPerformanceCounter(QPC)CPU time(ユーザー+カーネル時間)GetProcessTimesCycle count(CPUサイクル数)QueryProcessCycleTime優先度クラス(priority class)startコマンドプロセッサアフィニティ(affinity mask)プロセッサグループ(Processor Groups)

概念間の関係(全25件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

ベンチマークの再現性
同一条件で実行すれば同じ傾向の結果が得られるように、電源・熱・バックグラウンド活動などの環境条件を揃えて実行し記録するベンチマーク比較のあり方。
電源モード/電源プラン(PPM)
Best power efficiency・Balanced・Best performanceなど、CPUをどの程度の周波数・電力状態で動かすかを決めるWindowsの設定群。
Power plan(電源プラン)
powercfgで確認・切り替えできる、BalancedやHigh performanceなどの従来型のWindows電源プラン。
Modern Standby対応デバイス
画面オフ中も低電力でネットワーク接続を維持できる高速スリープモデルに対応したデバイス。選択できるPower planがBalanced系に制限される。
Core Parking
使用率が低いときに一部の論理プロセッサを低電力状態(parked)へ寄せて消費電力を抑える、Windowsの電源管理機能。
検索インデックス作成
ファイルの内容やプロパティを事前に索引化し検索を高速化する、Windowsのバックグラウンド処理。
除外設定(フォルダー除外)
指定したパス・プロセスをウイルス対策のスキャン対象から外す設定。効くのはその設定を持つ製品自身のフィルターだけで、保護レベルを下げるトレードオフを伴う。
クリーンブート(clean boot)
Microsoft以外のサービスとスタートアップアプリを止めて最小構成で起動する、Windowsのトラブルシューティング手順。
Do not disturb(通知の抑制)
Windowsの通知バナー表示を一時的に止める機能。
Windows Performance Recorder(WPR)
ETWベースでCPU・I/O・context switch・ページフォールトなどのトレースを記録する、Windows ADK付属のツール。
Windows Performance Analyzer(WPA)
WPRなどで記録したETWトレースを開き、CPUやディスクの使用状況をグラフで分析するツール。
Wall-clock time(実時間)
処理の開始から終了までにユーザーが実際に待つ経過時間。エンドツーエンドの体感に最も近い指標。
CPU time(ユーザー+カーネル時間)
プロセスが実際にCPUを使用した時間の合計。計算効率を見る指標になる。
Cycle count(CPUサイクル数)
プロセスが消費したCPUサイクルの数。wall-clockとは別の面からCPU workを見る指標。
優先度クラス(priority class)
他プロセスからの割り込まれにくさを決める、プロセスに設定するスケジューリング優先度の区分。
プロセッサアフィニティ(affinity mask)
スレッド・プロセスを実行してよい論理プロセッサの集合を限定する設定。
ベンチマーク結果のばらつき(ブレ)
同一条件のはずの実行間で計測値が安定せず、外れ値や環境条件の差によって結果が揺れること。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。