ビジネスをデザインするブログ:ITmediaオルタナティブ・ブログ (RSS) ビジネスをデザインするブログ

事業開発ほどクリエイティブな行為は他に無いと思いこんでいる人間の日常

CPU メーターっぽいのを作らないといけないニーズが発生。

で、とりあえず

Cpumeter_2

こんな感じのができました(試作段階なので・・・見た目が悪いのは勘弁です)。

黄色っぽいのが_Total で、青は各Core。私のマシンはCorei5なので4つ。

レンダリングにはWPFを利用。余談ですが、Silverlight からはパフォーマンスカウンタにはアクセスできないのでWPFというわけです・・・。

が、WPFはさておき、パフォーマンスカウンタ周りで思ったより(調べものに)苦労しましたので情報共有。

最初、「まあ、パフォーマンスカウンタからProcessor Time を取ってきてビジュアライズすればいいんでしょ」とヨユーをこいていたら、思わぬ落とし穴が・・・。

今回の仕様(勝手に自分で設定)を満たすためには、各CPU、各コア毎のProcessor Time を取得しなければならない・・・。

が、

Bing先生に聞くも、、、

CPUトータルのサンプルしか見つからない。

あれこれ試した結果、

//CPU(Core)数を取得
cpu_num = System.Environment.ProcessorCount;

pc = new PerformanceCounter[cpu_num];

            for (int i = 0; i < cpu_num; i++)
            {
                string machineName = ".";
                string categoryName = "Processor Information";
                string counterName = "% Processor Time";
                string instanceNmae = "0," + i.ToString(); //ダサイ・・・

                pc[i] = new PerformanceCounter(
                categoryName, counterName, instanceNmae, machineName);
            }

//Tickとかループとかで値取得
value = pc[i].NextValue();

こんな感じで取得できることが判明(抜粋なので、上記コピペでは動きません。念のため)。

まず、ハマりポイントは、カテゴリー名を

Processor

ではなく

Processor Information

にしなくてはならないということ。この2つ、エイリアス程度にしか考えておりませんでしたが、違うのですね(知らないのは俺だけか?)。

で、インスタンス名は、普通、_Total かIdleくらいしか使いませんが、

1個目のCPUの1個目のコアは

0,0

というインスタンス名で取得できることがわかりました。

まあ、とりあえず、一見落着なのですが、

物理CPUとCoreを別々に取得する方法が見つからず・・・・(誰か知ってたら教えてください!)。

ということで、今のところ、CPU構成とかのわかっているマシンにしか適用できない・・・。

おまけ

開発中、CPUの負荷が全体で数%しかなくて、表示のデバッグに苦労したのですが、安定した負荷を与えるツールとしてPrime95というのを利用してみましたが、なかなか良いです。そっちの系の人には有名なツールのようですが・・・。

Cpu100

こんな感じで、100%負荷をかけて、ちゃんとバーのスケールが合ってるかとかチェックできるので便利でした。

tama

Special

- PR -
コメント
トラックバック

http://app.blogs.itmedia.co.jp/t/trackback/77444/25384961

トラックバック・ポリシー


» このブログのTOP

» オルタナティブ・ブログTOP



プロフィール

玉木 栄三郎

玉木 栄三郎

ビジネスデザイナー
(現在は、Microsoft Regional Directorなどとして活動)

詳しいプロフィール

最近のコメント
最近のトラックバック
カレンダー
2012年5月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
カテゴリー
エンタープライズ・ピックアップ

news094.gif ストレス社会との付き合い方
政府がメンタルヘルス検査の義務化を検討しています。しかしうつになった後だけではなく、なる前の予防も大切なのではないでしょうか。(5/24)

news094.gif 「思いやり経営」のススメ
産学・NPO連携の民間団体が先頃、「思いやり経営」という観点で評価した指標や企業ランキングを発表した。企業のマネジメント力を知る手立てとして注目されそうだ。(5/24)

news094.gif テレワークが労働者のマインドを変える
テレワークが普及すると、労働者の評価は従来の「時間×生産性」から「成果」へと変化する。時間や場所を自分の裁量でコントロールできる変わりに、成果を最大化するために労働をマネジメントする能力とマインドが労働者には必要になる。(5/23)

news094.gif 求む、クックパッド男子
高身長も高学歴も高収入もいらない。私が男性に求めるのは「料理の腕」だけです。(5/18)

news094.gif 37歳の常識――我々は一生学び続ける
学び続けなければ衰退するのみだ。(5/18)

オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。

Special

- PR -

サイトマップ | 利用規約 | プライバシーポリシー | 広告案内 | お問い合わせ