• ベストアンサー

プログラム動作時のCPU処理時間とCPU負荷の取得

シミュレーションを行うために、C言語で書いたプログラムのCPU処理時間(CPUがそのプログラムのために動作していた時間)と、横軸が時間で縦軸がCPU負荷(%)を取得したいのですが、方法を教えてください。 プログラムはwindowsでVC++ or Linuxでgccでコンパイルしようと思っています。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yama06
  • ベストアンサー率61% (101/164)
回答No.1

Linuxは処理時間の計測はtimeコマンドでよいのではないでしょうか(参考URL)。 負荷の遷移はtopコマンドでdelayを指定してデータを集められると 思います。 http://homepage2.nifty.com/cs/linux_command/command/top.html これらがCygwinにあるかどうかは不明です。

参考URL:
http://www.linuxworld.jp/command/-/13221.html
combat5
質問者

補足

ご回答ありがとうございます。 timeコマンドは僕が実行しようとしているシミュレーションに使えそうです。 topコマンドで指定できる単位が秒では、僕が実行しようとしているシミュレーションには荒すぎて使えそうもありません。 もしご存じならミリ秒単位で負荷の遷移を集められる方法を教えて頂けないでしょうか? 2度の質問で申し訳ありませんが、よろしくお願いいたします。

その他の回答 (1)

noname#20242
noname#20242
回答No.2

Windowsの場合、pdh.dllに含まれている「パフォーマンス モニタ関数」を使えばできると思います。 参考の関数 PdhOpenQuery() PdhAddCounter() PdhCollectQueryData() PdhGetFormattedCounterValue() PdhCloseQuery() 参考URL (C++Builderですが) http://kenkou-engineer.seesaa.net/article/8285572.html

関連するQ&A

  • LinuxとC言語

    Linux初心者です。LinuxとC言語についていくつか質問 させていただきます。 1.どんなリナックスにもgccは入っているのでしょうか? 2.Linuxには色んな種類のものがありますが、 全てのLinuxでコンパイルや動作は可能でしょうか? 宜しくお願いします。

  • C言語で作ったらWindowsでもMacでもLinuxでも動くんですか?

    Linuxでgccを使ってC言語を勉強してます。 Linuxのgccでコンパイルして作ったプログラムはWindowsでもMacでも動くんでしょうか? 逆にWindowsで作ったのはとか、Macで作ったのは他のOSで動くんだろうかと疑問で・・・。 教えてください!!

  • プログラミング

    C言語のプログラミング歴1年くらいの者です。 LinuxのGCCを使ってプログラミングをやっている中で、オブジェクトファイルというものを知ったのですが、オブジェクトファイルってなんのためにあるんですか? ネットで調べたり友達にきいたりして、「それ単体では動作はしないが、プログラムファイルとリンクさせてコンパイルすることで動作するもの」みたいなことまでは分かっています。 ただいまいちなぜオブジェクトファイルにする必要があるとかがわかりません。 どなたか教えてください。

  • fortran77のプログラム時間を計測したい

    fortran77のプログラム時間を計測したい こんばんわ。fortran77で実行結果が出るまでの時間の測定をしたいのですが、どうすればいいのでしょうか? 調べてみるといろいろな方法があるようです。しかし、そのほとんどがlinuxでの環境においての説明です。 私はwindowsの環境でfcpadを使ってコンパイルしています。ですので、「a.out」のコマンドを打ってプログラムを実行したことがありません。windows環境でもfortran77で時間計測というのはできますでしょうか? また、今回linuxの存在の大きさを感じた次第です。linuxでコンパイルするというのはメリットがあるのでしょうか?

  • セグメンテーション違反とは??

    linuxでC言語のプログラムを構築しています。 gccでコンパイルしたときにセグメンテーション違反という エラーが出てしまいます。 セグメンテーション違反とは一体なんの ことなんでしょうか? メモリのことだと思ってるんですが、原因がよくわかりません。C言語初心者なので わかりやすく教えて頂けるとありがたいです。

  • CPU Multi Processing をEnableにすると動作しなくなる。

    すでにVB6で作成したプログラムがあり、IBM Think Pad T42にインストールして使っていた自作プログラムがあります。 このプログラムを客先に納入することになり、あらたにT60を購入し 客先に同じプログラムをPCごと納品しようとおもい、動作チェックすると、T42では問題なく動作していたプログラムが、起動したり、しなかったり、不安定な状態になりました。 その後の調査で、どうやらT60ではBIOSでCPU Multi Processing をDisableにすると、この不具合は無くなるようなのですが、いまだに原因はわかりません。 CPU Multi Processing がEnableだと、なにか特殊なプログラミングが 必要なのでしょうか? コンパイルはネイティブコード・コンパイルを使用していますが、P-CODEコンパイルでも同じ現象が発生します。

  • C++プログラム実行時エラー

    お世話になります。 現在仕事でプログラムを書いていますが、 こんな事で困っています。 困っていること:コンパイルは通るのですが、実行時に下記のような現象が起きる。 [relocation error: /usr/lib/私の作ったSHARED_LIB.so.0: undefined symbol: __dso_handle] [__dso_handle]って何なのか良くわからない... 言語:C++ 特徴:STLを3つ使用している(vector,map,fstream) OS:RedHat9 その他:RedHat7.2及び7.3では起きないのですが、RedHat9で発生してしまう。 binutilsとgccとの関係も疑っているのですが... gcc version:3.2.2 20030222 (Red Hat Linux 3.2.2-5) ld version:2.13.90.0.18 20030206 御意見よろしくお願いいたします。

  • プログラムの処理時間を表示する

    Windowsのコマンドプロンプトで,プログラムの処理時間を表示する事ってできますか? ---------- a.exe ampl cooksched.run b.exe ---------- というバッチファイルを実行しているのですが,この一連の処理をする時間を表示させたいです. ちなみにa.exeとb.exeはC言語で書いたものをcygwinでコンパイルしたものです. 2行目の[ampl cooksched.run]というのは,AMPLという言語のバッチファイルみたいなものです. 説明が下手ですみませんが,何か分からない事がありましたら補足いたしますのでよろしくお願いいたします.

  • CPU負荷分散先のServerをなんと呼ぶ?

    半導体設計Dataを開発するサーバのH/W構成を調査しています。 シミュレーション、コンパイルの際、サーバ一負荷を回避するため、 演算処理を他のサーバのCPUで代行しています。 この「演算を代行している」サーバをなんと呼ぶでしょうか? 「キャッシュサーバ」「演算サーバ」とか適当にネーミングしていますが、 他の一般的に使われている名称があるのでしょうか。 検索しても見つけられず、投稿してしまいました。 おつきあいくだされば幸いです。

  • GPLについて

    gcc でコンパイルしたプログラムは gccのライブラリとリンクされることになると思いますが、このプログラムは配布する時に GPL にのっとって配布しなければならないのでしょうか? 一般的に linux で動く商用で配布されているプログラムなどのようなコンパイラでコンパイルされているのでしょうか?

専門家に質問してみよう