現在大学にてC言語でプログラムを組んでいますが、上からサイクル数をカウントして速度評価をしろと言われました。
しかしプログラムについてあまり詳しくなく、参考書などで調べましたが、さっぱりわかりませんでした。
Googleで調べた所、唯一"clock.h"というヘッダファイルと、start_counter();、get_counter();というのを用いているものを見つけましたが、どうやらclock.hは通常のコンパイラには入っておらず使えないとの事でした。
該当するclock.hも見つからず、どうしようもなくなってしまったので、こちらの方に質問させていただく事にしました。
上のclock.hを用いない場合、サイクル数のカウントとはどのようにして行えばいいのでしょうか?
また、上のclock.hの入手先やヘッダファイルソースがあるサイトをご存知でしたらご教授願います。
No.2ベストアンサー
- 回答日時:
本当にサイクル数がほしければ, CPU が持っているカウンタを使わざるをえないような気がするなぁ.
Intel の PentiumPRO 以降なら
http://www.hpcs.is.tsukuba.ac.jp/~msato/pdplab/t …
にある方法で対応できるかも (アセンブリ部分は適宜修正すること).
ちなみに Intel だと「CPU のクロック数」がそのままもらえるけど, AMD の Athlon とかだと「CPU のクロック数」にはならないはずです (FSB で数えたクロック数になるんだったかな?)
DirectX のマルチメディアタイマとか QueryPerformanceCounter() を使えば「それなり高精度」ではありますけど... 「サイクル数」っていわれちゃうと却下だよなぁ.
回答ありがとうございます。
サイクル数での測定というのは(私には)かなり難しいようですね…。
QueryPerformanceCounter()も時間計測の方で用いた事がありますが、やはりサイクル数という意味合いではちょっと違うのでしょうか…。
取り合えず念のために皆様のご提案方法で各自プログラムを組んでおく事にします。
ありがとうございます。
No.1
- 回答日時:
time.hのclock( )関数は使えませんか
質問するときはOSやコンパイラを書かれたほうがいいですよ
回答がしやすくなりますので
この回答への補足
回答ありがとうございます。
環境の記載を忘れておりました。
大変失礼しました。
OS…Windows XP Home
コンパイラ…Microsoft Visual studio 2005
です。
大変初歩的な質問なのですが、サイクル数のカウントというのがいまいち理解できておりません。
Clock()関数は、以前秒数計測として用いておりましたが、CLOCKS_PER_SECで割らない場合は、サイクル数のカウントをしているという事になるのでしょうか?
初歩的な質問で申し訳ありませんが、ご教授お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- CPU・メモリ・マザーボード CPUについて 3 2022/11/15 20:43
- 化学 今確認すべきことはSS材質の配管に塩酸が流れますが排出する溶液(廃水)に含んでいるClの濃度が25p 1 2023/01/01 15:43
- 数学 『◯と●の帰納法』 2 2023/04/19 20:57
- 数学 加群の双線形について 2 2022/10/20 22:11
- 流行・カルチャー 女同級生の悪癖・・・何処まで許せる?ベスト対応は何? 1 2022/07/22 19:19
- 世界情勢 K国の尹大統領が決めた徴用賠償案の代位弁済の意図は。? 4 2023/06/08 08:12
- CPU・メモリ・マザーボード Ivy BridgeのPCでゲームのラグを減らしたい 6 2023/04/20 23:52
- 薬学 KCLキット20mEqの生理食塩水に対する浸透圧比が6なのは何故ですか? KとCLに解離して1×20 1 2023/04/26 13:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
unsigned long long 型のフォー...
-
main() 関数は、int を返値とす...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
<conio.h>?
-
PICのCコンパイラーについて
-
プログラミングって右脳よりの...
-
COBOL計算式の中間ワーク桁数に...
-
printfなど、標準関数のソース...
-
リリースモードとデバッグモー...
-
組込みC開発
-
COBOLの論理演算子について質問...
-
COBOLのALPHABET...
-
C言語 main関数とsum関数の記...
-
未使用引数の注意文出力を回避...
-
初心者です C言語を学びたいで...
-
C++Builder → Visual C++ 移植...
-
C言語で画像を出力したい
-
python エラー
-
エクセルのエラーメッセージ「4...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
printfなど、標準関数のソース...
-
組み込みソフト。ROM領域にデータ
-
リリースモードとデバッグモー...
-
変数の内容がコロコロ変わる、...
-
cc と gcc の違い
-
COBOLの論理演算子について質問...
-
Visual Studio でmakefileを使...
-
PICでのI2C通信でのマスタ、ス...
-
COBOLのALPHABET...
-
<conio.h>?
-
VB6のコンパイラ
-
COBOL計算式の中間ワーク桁数に...
-
パーサとコンパイラの違いって?
-
関数形式マクロ dtaは戻り値が...
-
プログラミングって右脳よりの...
-
C++Builder → Visual C++ 移植...
-
24bit サイズの変数
おすすめ情報