C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: プロセス別のCPU使用率


(過去ログ 11 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■2826 / inTopicNo.1)  プロセス別のCPU使用率
  
□投稿者/ kana (1回)-(2007/04/17(Tue) 10:55:54)

分類:[C# (Windows)] 

C#.net(2.0)でプロセス別のCPU使用率を取得したいのですが、
まったく方法がわかりません。どなたか教えてください・・・
(タスクマネジャーのプロセスタブに表示されているCPU使用率の事です)
引用返信 編集キー/
■2833 / inTopicNo.2)  Re[1]: プロセス別のCPU使用率
□投稿者/ Jitta (303回)-(2007/04/17(Tue) 12:29:23)
No2826 (kana さん) に返信
> C#.net(2.0)でプロセス別のCPU使用率を取得したいのですが、
> まったく方法がわかりません。どなたか教えてください・・・
> (タスクマネジャーのプロセスタブに表示されているCPU使用率の事です)


見積もり書をお送りすればよろしいですか?

まず、手順をバラしましょう。
引用返信 編集キー/
■2834 / inTopicNo.3)  Re[2]: プロセス別のCPU使用率
□投稿者/ kana (4回)-(2007/04/17(Tue) 12:59:35)
No2833 (Jitta さん) に返信
> ■No2826 (kana さん) に返信
>>C#.net(2.0)でプロセス別のCPU使用率を取得したいのですが、
>>まったく方法がわかりません。どなたか教えてください・・・
>>(タスクマネジャーのプロセスタブに表示されているCPU使用率の事です)
>
>
> 見積もり書をお送りすればよろしいですか?
>
> まず、手順をバラしましょう。

手順をバラす?
個々のプロセスとCPU使用率を分けて考えるという事
でしょうか?
引用返信 編集キー/
■2836 / inTopicNo.4)  Re[1]: プロセス別のCPU使用率
□投稿者/ 魔界の仮面弁士 (263回)-(2007/04/17(Tue) 13:09:41)
No2826 (kana さん) に返信
> C#.net(2.0)でプロセス別のCPU使用率を取得したいのですが、

アンマネージで良ければ、Performance Data Helper API とか。

イメージ的にはこんな感じで。(C# ではなく、VB6 のコード例ですが)
http://nienie.com/~masapico/api_sample_pdh03_vb.html
引用返信 編集キー/
■2837 / inTopicNo.5)  Re[2]: プロセス別のCPU使用率
□投稿者/ kana (5回)-(2007/04/17(Tue) 13:13:04)
2007/04/17(Tue) 17:28:31 編集(投稿者)

No2836 (魔界の仮面弁士 さん) に返信
> ■No2826 (kana さん) に返信
>>C#.net(2.0)でプロセス別のCPU使用率を取得したいのですが、
>
> アンマネージで良ければ、Performance Data Helper API とか。
>
> イメージ的にはこんな感じで。(C# ではなく、VB6 のコード例ですが)
> http://nienie.com/~masapico/api_sample_pdh03_vb.html

Jittaさん、魔界の仮面弁士さん
ご解答ありがとうございます。

引用返信 編集キー/
■2838 / inTopicNo.6)  Re[2]: プロセス別のCPU使用率
□投稿者/ 魔界の仮面弁士 (264回)-(2007/04/17(Tue) 13:25:14)
No2836 (魔界の仮面弁士) に返信
>>C#.net(2.0)でプロセス別のCPU使用率を取得したいのですが、
> アンマネージで良ければ、Performance Data Helper API とか。
マネージだと、PerformanceCounter クラスかな。

イメージ的にはこんな感じで。(C# ではなく、VB.NET のコード例ですが)
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/PerformanceCounter/

上記は、"Processor" の "% Processor Time" での実装例ですが、
それを、"Process" の "% Processor Time" にしてやれば、
InstanceName ごとのパフォーマンス情報を取得することができるかと。
引用返信 編集キー/
■2843 / inTopicNo.7)  Re[3]: プロセス別のCPU使用率
□投稿者/ Jitta (304回)-(2007/04/17(Tue) 14:28:59)
No2834 (kana さん) に返信
> ■No2833 (Jitta さん) に返信
>>■No2826 (kana さん) に返信
> >>C#.net(2.0)でプロセス別のCPU使用率を取得したいのですが、
> >>まったく方法がわかりません。どなたか教えてください・・・
> >>(タスクマネジャーのプロセスタブに表示されているCPU使用率の事です)
>>
>>
>>見積もり書をお送りすればよろしいですか?
>>
>>まず、手順をバラしましょう。
>
> 手順をバラす?
> 個々のプロセスとCPU使用率を分けて考えるという事
> でしょうか?

マジ?

普通、どの様にしたら実現できるか、ってことから考えない?
この場合、いきなり「プロセスごとのCPU使用率」なんて出せないのは、まぁ、わかるでしょう。
じゃぁ、何ならわかりそうか?プロセス一件のCPU使用率なら、わかるかもしれない。
出来ると仮定して、そのためには、何が必要か?現在実行中のプロセス一覧が要るだろう。

つまり、実行中のプロセス一覧をとって、一件ずつCPU使用率を問い合わせる、という手順になりますよね。


なんか、泣きたい。
引用返信 編集キー/
■2859 / inTopicNo.8)  Re[4]: プロセス別のCPU使用率
□投稿者/ じゃんぬねっと (412回)-(2007/04/17(Tue) 16:46:12)
じゃんぬねっと さんの Web サイト
皆さま、こんにちは。

No2843 (Jitta さん) に返信
> マジ?
>
> 普通、どの様にしたら実現できるか、ってことから考えない?
> この場合、いきなり「プロセスごとのCPU使用率」なんて出せないのは、まぁ、わかるでしょう。
> じゃぁ、何ならわかりそうか?プロセス一件のCPU使用率なら、わかるかもしれない。
> 出来ると仮定して、そのためには、何が必要か?現在実行中のプロセス一覧が要るだろう。
>
> つまり、実行中のプロセス一覧をとって、一件ずつCPU使用率を問い合わせる、という手順になりますよね。
>
> なんか、泣きたい。

Jitta さん。

おそらく最初の書き込みの真意がわからなくて、ああいう返答になったのだと思います。
それを受けて、「"普通" 〜 から考えない?」 という言い方や、最後の一言はちょっと厳しいのではないかと感じました。
(Jitta さんの意図はわからないので、確定的な書き方をするのはおかしいかもしれませんが、"そう見えた" ということで留意してください)

対話が成り立っていない段階 (相手の非ではない段階) で、バッサリ斬り捨てているように見えてしまいます。
対話が成り立つように 「こういう意味で言ったんだよ」 程度に留めておいて頂ければと思います。

誤解のないように申し上げますと、回答者のスタイルにケチをつける気はないです。
(たとえばですが、「自分で考えさせる」 という回答スタイルが正しいかどうかなど誰にも判断できませんから)

ただ、ここを管理している人間として、客観的な目で判断して今回は注意が必要だと感じました。
個人的に連絡を取ることも考えたのですが、「示し方」 も必要だと思いここに書き込みました。

# もし (受けてとしての) 私の誤解であれば、「誤解がないような書き方をしましょう」 という意味です。
# 某所で Jitta さん自身が同じことを仰っているので、このあたりは「言わずもがな」のような気もしますけど。
# 何だかえらそうなことを書いてしまいました...
引用返信 編集キー/
■2863 / inTopicNo.9)  Re[3]: プロセス別のCPU使用率
□投稿者/ kana (7回)-(2007/04/17(Tue) 17:05:41)
いろいろ試したのですが、
現在、WMIのWin32_Processクラスを使用して
プロセス情報の取得はできているのですが、
個々のプロセス情報からのCPU使用率を取得する方法が見つかりません・・・・
プログラムは以下です。

ManagementScope scope = new ManagementScope(@"\\.\ROOT\CIMV2");
ObjectQuery query = new ObjectQuery(@"Select * From Win32_Process ");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection col = searcher.Get();

foreach (ManagementObject mo in col)
{
    //プロセス情報
    Console.WriteLine("ProcessId" + mo["ProcessId"]);
}

引用返信 編集キー/
■2871 / inTopicNo.10)  Re[4]: プロセス別のCPU使用率
□投稿者/ WonderRabbit (3回)-(2007/04/17(Tue) 21:28:22)
WonderRabbit さんの Web サイト
魔界の仮面弁士 さんが提示してくれているURL参考にしました?

質問スレッドの最初の投稿からするにマネージド向けに"PerformanceCounter"を使ってみるのが宜しいかと。

もし既に紹介されているMicrosoftサイトの情報が理解し難かったのなら、ちょっと検索すれば他の例や噛み砕いたりした例などたくさんの情報が出てきますよ。

Googleで「PerformanceCounter」
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-45,GGGL:ja&q=PerformanceCounter

引用返信 編集キー/
■2877 / inTopicNo.11)  Re[5]: プロセス別のCPU使用率
□投稿者/ 中博俊 (1033回)-(2007/04/17(Tue) 22:50:13)
中博俊 さんの Web サイト
ブリッジ
http://www.ailight.jp/BBS/Detail.aspx?Header_ID=2243
引用返信 編集キー/
■2878 / inTopicNo.12)  Re[5]: プロセス別のCPU使用率
□投稿者/ Jitta (306回)-(2007/04/17(Tue) 22:50:43)
Jitta さんの Web サイト
No2859 (じゃんぬねっと さん) に返信

いえいえ、ありがとうございます。

 特定個人を対象としたものではなく、普段から漠然と感じていることが形になった、というところです。
blog で書こうかと思っていたのですが、「解決済み」になっているのを見ると・・・あれ?なってない?編集してるね。
解決済みになっているのを見て、「それでわかるんだったら、もうちっと書き方があったんじゃない?」と思いました。

「マジ?普通」については、「手順をバラす?個々のプロセスとCPU使用率を分けて考えるという事でしょうか?」にたいしてです。
「なんで“手順”がそう解釈されるんだ?それは対象をばらすだろう?」
手順って、普段使わない単語なんですか?!

ごめん、妻に解説してもらった。
私は、目的を達するために何をしましたか?また、どんな順序でどんなことを調べれば、目的が達成できるか考えましょう。
と、投げたのですが、妻の解説では、
「あんたの返事を答えと短絡したんや。だから“バラす”を“別々に”ってとったんちゃう?」
妙に納得。。。
引用返信 編集キー/
■2933 / inTopicNo.13)  Re[6]: プロセス別のCPU使用率
□投稿者/ Jitta (307回)-(2007/04/18(Wed) 21:59:36)
Jitta さんの Web サイト
 実はこれを紹介すると解決したりして?
http://www.microsoft.com/technet/sysinternals/utilities/ProcessExplorer.mspx

引用返信 編集キー/
■2947 / inTopicNo.14)  Re[7]: プロセス別のCPU使用率
□投稿者/ kana (8回)-(2007/04/19(Thu) 09:01:30)
皆様どうもありがとうございます。


PerformanceCounterクラスを使用して、プロセス別のCPU使用率を
取得することができました。

いろいろと迷惑をおかけしてどうもすみませんでした。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -