Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
PerformanceDataHelper.cpp
[詳解]
1// ----------------------------------------------------------------------------
6
7#include "pch.h"
9
10using namespace alt;
11
12// PerformanceDataItem ------------------------------------------------
13
15{
16 _hQuery = hQuery;
17 _counterPath = key;
18 _hCounter = INVALID_HANDLE_VALUE;
19}
20
22{
23
24}
25
27{
28 PDH_STATUS stat = ::PdhAddCounter (
30 return ERROR_SUCCESS == stat ? true : false;
31}
32
34 DWORD dwFormat, PDH_FMT_COUNTERVALUE& value)
35{
36 PDH_STATUS stat = ::PdhGetFormattedCounterValue (
37 _hCounter, dwFormat, NULL, &value);
38 return ERROR_SUCCESS == stat ? true : false;
39}
40
42{
43 return _counterPath;
44}
45
46/* The query keys are...
47 Processor
48 _T("\\Processor(_Total)\\% Processor Time") % Processor Time は、プロセッサがアイドル以外のスレッドを実行するために使用した経過時間の割合をパーセントで表示します。
49 _T("\\Processor(_Total)\\% User Time") ユーザー モードで経過した非アイドルのプロセッサ時間の割合をパーセントで表示します。
50 _T("\\Processor(_Total)\\% Privileged Time") プロセスのスレッドが特権モードでコード実行に費やした経過時間の割合をパーセントで表示します。
51 _T("\\Processor(_Total)\\Interrupts/sec") ハードウェアの割り込みを、プロセッサが受信、処理した平均率を毎秒の回数で表したものです。
52 Memory
53 _T("\\Memory\\Available MBytes") プロセスへの割り当てまたはシステムの使用にすぐに利用可能な物理メモリのサイズをメガバイト数で表示します。
54 _T("\\Memory\\Pages/sec") ハード ページ フォールトを解決するためにディスクから読み取られた、またはディスクへ書き込まれたページの数です。
55 _T("\\Memory\\Committed Bytes") コミットされた仮想メモリのサイズをバイト数で表示します。
56 _T("\\Memory\\% Committed Bytes In Use") Memory\\Committed Bytes の Memory\\Commit Limit に対する割合です。
57 Paging File
58 _T("\\Paging File(_Total)\\% Usage") 使用中のページ ファイル インスタンスの合計をパーセントで表示します。
59 PhysicalDisk
60 _T("\\PhysicalDisk(_Total)\\% Disk Time") 選択したディスク ドライブが読み取りまたは書き込み要求を処理していてビジー状態にあった経過時間の割合をパーセントで表示します。
61 _T("\\PhysicalDisk(_Total)\\Current Disk Queue Length") パフォーマンス データの収集時にディスクに残っている要求の数です。
62 _T("\\PhysicalDisk(_Total)\\Disk Writes/sec") ディスク上の書き込操作の速度です。
63 System
64 _T("\\System\\Processor Queue Length") プロセッサ キューにあるスレッドの数です。
65 _T("\\System\\Context Switches/sec") 任意のスレッドからほかのスレッドに切り替わるすべてのプロセッサを含めた率です。
66 Network
67 _T("\\Network Interface(*)\\Bytes Total/sec") 各ネットワーク アダプター上で送受信されるバイトの率です。
68
69 */
70
71// PerformanceDataHelper ----------------------------------------------
72
74{
75 _hQuery = INVALID_HANDLE_VALUE;
76}
77
79{
80 if (_hQuery != INVALID_HANDLE_VALUE) Close ();
81 _hQuery = INVALID_HANDLE_VALUE;
82}
83
85{
86 PDH_STATUS stat = ::PdhOpenQuery (NULL, 0, &_hQuery);
87 return ERROR_SUCCESS == stat ? true : false;
88}
89
91{
92 PDH_STATUS stat = ::PdhCloseQuery (_hQuery);
93 return ERROR_SUCCESS == stat ? true : false;
94}
95
97{
99 item->AddCounter ();
100 return *(item);
101}
102
104{
105 PDH_STATUS stat = ::PdhCollectQueryData (_hQuery);
106 return ERROR_SUCCESS == stat ? true : false;
107}
プリコンパイル済みヘッダー ファイルです。
APIENTRY PerformanceDataHelper()
コンストラクタ
bool APIENTRY Query()
パフォーマンスカウンター値の問い合わせ
APIENTRY ~PerformanceDataHelper()
デストラクタ
PerformanceDataItem &APIENTRY CreateItem(TString key)
このクラスに属するカウンター設定クラスの生成
bool APIENTRY Open()
パフォーマンスモニター値の取得開始
bool APIENTRY Close()
パフォーマンスモニター値の取得終了
TString &APIENTRY GetKey()
カウンター情報の取得
APIENTRY ~PerformanceDataItem()
デストラクタ
bool APIENTRY AddCounter()
カウンター値の取得設定
bool APIENTRY GetValue(DWORD dwFormat, PDH_FMT_COUNTERVALUE &value)
カウンター値の取得
文字列に関するWindowsAPIを集約したクラス
Definition: TString.h:17
LPCTSTR APIENTRY Ctr() const
内部で確保している文字列ポインタを取得します。
Definition: TString.h:46
Definition: DBLibrary.h:12