問題タブ [pdh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2782 参照

windows - システム パフォーマンス カウンターのインスタンス名はローカライズされていますか?

Windows のパフォーマンス カウンター名はローカライズされているため、たとえば、カウンター\Processor(_Total)\% Processor Timeは Windows の他の言語バージョンでは別の名前で呼ばれています。つまり、正しい名前を見つけるには、最初にカウンターのインデックスを見つけてから、PdhLookupPerfNameByIndex関数を使用してローカライズされた名前を取得する必要があります ( Windows XP をサポートする必要がある場合、PdhAddEnglishCounter を使用することはできません)

上記のカウンター パスのパフォーマンス オブジェクト ( Processor) とカウンター ( % Processor Time) の部分についてはこれで問題ありませんが、インスタンス名 ( _Total) についてはどうでしょうか。レジストリにこの文字列が見つからないため、情報を提供するシステム コンポーネントによって提供されていると思われます。

システム提供のパフォーマンス カウンターのインスタンス名は、異なる言語バージョンの Windows 間で同じであることが保証されていますか?

そうでない場合、どのインスタンスがインスタンスに対応するかをどのように判断でき_Totalますか?

0 投票する
1 に答える
354 参照

c++ - 現在のプロセスのパフォーマンス カウンターとの競合状態

古い「現在のプロセスの Windows パフォーマンス カウンターを取得する方法」の問題を回避しようとしています。基本的に、プロセス オブジェクト インスタンスを列挙してプロセス オブジェクトのリストを取得し、それらのプロセス ID をクエリして自分のプロセス ID と比較します。

これに基づいて、正しいインスタンス インデックスを使用してパフォーマンス カウンター パスを作成し (に似たものを作成する\Process(my_program#3)\<counter>)、それを使用して、関心のあるカウンターを照会できます。PdhAddCounter呼び出しの前に my_program が終了しますか? 私の理解が正しければ、カウンター パスが別のプロセスを参照しているか、無効になっていることを意味します。プロセスIDのクエリ中に消えることさえあります...

カウンター パスを使用してカウンター ハンドルを取得する前に、カウンター パスが無効になるのを防ぐにはどうすればよいですか?

0 投票する
2 に答える
1503 参照

c# - WindowsでCPU使用率とネットワークスループットを取得するための最も効率的で基本的な方法は?

WindowsプラットフォームでCPU使用率とネットワークスループットを取得するための最も効率的で基本的な方法は何ですか?

私が間違っている場合は私を訂正してください...

  1. Windows API // Win32?SDK?(c / c ++)#すみません、わかりません...
  2. Windows Management Instrumentation(WMI)、
    • Win32_PerfFormattedData_Tcpip_NetworkInterfaceクラスBytesReceivedPerSec
    • Win32_PerfRawData_PerfOS_ProcessorクラスPercentProcessorTime
  3. System.Diagnostics PerformanceCounter
  4. パフォーマンスデータヘルパー(PDH)、pdh.dll
  5. PerformanceCounter(c#/。netフレームワーク)または別の今日のメソッド?
  6. ntdll.dllのNtQuerySystemInformation

では、この値を取得するための最良の方法は何ですか? CPU使用率ネットワークインターフェイス速度の値の両方を取得するにはwindows.hkernel32.dllのみをインポートできますか?

ありがとう

0 投票する
1 に答える
739 参照

c++ - Windows サーバーのスレッド数をカウントしています。カウンターパス

これについて同様のスレッドがありましたhere、そして私はそれを自分で実装しようとしました。つまり、C++ ライブラリを使用して、サーバーで実行されているスレッドの数を取得しようとしています。

COUNTER_PATH が何であるかを正確に知ることはできますか? (たとえば、指定されたリンクの「\Process(*_)\Thread Count」)? それとpid番号で文字列を作るとはどういう意味ですか?

以下は、私がこれまでに何も理解せずに書いたことです。

**また、上記のリンクに示されている解決策では、ワイルドカード パスを展開するように指示されていますが、 PdhAddCounter ページを確認すると、「カウンター パスにワイルドカード文字が含まれている場合、ワイルドカード文字に一致するすべてのカウンター名がファイルに追加されます。クエリ」なので、拡張が本当に必要かどうかはわかりませんでした。

さまざまな を見てきましたが、クエリを正しく作成しているかどうか、または COUNTER_PATH が何であるかはまだわかりません。誰か説明してくれませんか?

0 投票する
2 に答える
3512 参照

c++ - PDH が PdhAddCounter() を介して合計 CPU 時間にアクセスできない

現在、DirectX プログラムの CPU 使用率の概要を作成しようとしていますが、PdhAddCounter() を介してこの情報を取得できないようです。私のコードは次のようになります。

PdhAddCounter 呼び出しの後、私のステータスは = -1073738824 になり、プログラムが失敗します。

Windows 7 64 ビット システムを使用していますが、64 ビット環境で何か別のものを作成する必要がありますか? 助けてくれてありがとう。

0 投票する
1 に答える
1246 参照

c++ - PdhGetFormattedCounterValueと正しい形式

パフォーマンスAPIを理解しようとしていますが、PdhGetFormattedCounterValue関数とdwFormatパラメーターを理解するのに問題があります。

この関数を呼び出すときに選択する形式を知るにはどうすればよいですか?

PDH_COUNTER_INFOMSDNで構造体を見つけ、この構造体にdwTypeメンバーがあることを確認しましたが、この構造体を使用してカウンター形式に関する情報を取得し、関数を正常に呼び出す方法をまだ理解していませんPdhGetFormattedCounterValue

0 投票する
1 に答える
844 参照

c++ - Perfmonで検出されたCPUパーセンテージ

Windowsマシンからパフォーマンスデータを収集するようにクライアントをプログラミングしています。このデータは、情報を保存してグラフィカルに表示する中央サーバーに送信されます。

WindowsパフォーマンスAPIを使用してシステムデータを収集しています。しかし今、私は少し問題があります。サーバーは、送信するデータが互いにどのように関連しているかを知る必要があり、CPUカウンターについてWeb上で役立つものを見つけることができません。私の質問は、これらのカウンターが互いにどのように関係しているかです。

%プロセッサ時間+%アイドル時間= 100%

これを見つけるのはそれほど難しいことではありませんが、割り込み時間、特権時間、ユーザー時間などの他のパーセンテージ値に関する情報を見つけることができません。たとえば、プロセッサ時間との関係でこれらをどのように立てるか。最終的な目標は、これらすべての値を追加し、最後に100%を取得することです。

よろしくお願いします。英語をお詫び申し上げます。質問が明確であることを願っています。

0 投票する
1 に答える
1379 参照

c++ - PdhAddEnglishCounter の使用に関するエラー

私のコード:

このエラーがあります:

pdhエラー

英語翻訳:

プロシージャ PdhAddEnglishCounterA のアクセス ポイントがライブラリ DLL pdh.dll に見つかりません。

PdhAddCounterの代わりに使用している場合はPdhAddEnglishCounter、 in : が表示されStatusます0xC0000BC0 (PDH_CSTATUS_BAD_COUNTERNAME)。これで何をする必要がありますか?

ps Windows XP で Visual Studio 2010 を使用しています。

0 投票する
2 に答える
6739 参照

c++ - 特定のプロセスの c++/windows で現在の CPU 使用率を取得する

コード内の特定のアプリケーションの現在の CPU 使用率を計算したいと考えています。インターネットで調べたところ、Windows用のpdhライブラリが見つかりました。試してみると、1 つのプロセスの CPU 使用率ではなく、全体的な CPU 使用率が表示されます。

では、特定のプロセスの CPU 使用率を取得するには、この行をどうすればよいでしょうか? _Totalをプロセス名(explorer)に置き換えてみました。その時点で、CPU使用率が0になっています。しかし、一度に多くのウィンドウを開くとCPU使用率が最大20%増加することをリソースモニターで確認しました。まだログ ファイルの CPU 使用率は 0 を示しています。

誰でもこれで私を助けることができますか?

前もって感謝します。