
clock関数でプログラムの時間を計測しようと思っているのですがうまくいきません。
-----------------------------
clock_t start,end;
start = clock();
(処理)
end = clock();
printf("かかった時間:%f",(double)(end-start)/CLOCKS_PER_SEC);
-----------------------------
上のようにしているのですが、実行結果は0.00000秒と出てしまいます。処理のところは足し算を何題か出題し解答を入力し正解したら次の問題というようなことをしています。
確認のためstartにclock()を代入した後とendに代入したあとでprintfでstartとendを出力してみましたが、どちらの値も10.00000で同じ値となっています。0秒になるのはこれのせいだと思うのですが、どうして同じ値になるのでしょうか?
No.2ベストアンサー
- 回答日時:
>どうして同じ値になるのでしょうか?
(処理)が、clock()値に対して速すぎるからだと思います。
clock()での区間計測は、一般に低精度です。
WinならQueryPerformanceCounter()を使ってみて下さい。それ以外の環境でかつIA32なら、RDTSC命令が有効です。
QueryPerformanceCounter()を使ったらうまくいったのでそちらの方法を使ってみることにします。ありがとうございました。
No.1
- 回答日時:
処理系等にも依存しますが、clock関数の分解能に比べて、処理が短すぎることが原因かと思います。
clock_tの精度と実際の分解能は必ずしも一致していません。例えば、clock_tが1msec単位であったとしても、実際の分解能が50msecしかない場合もあるわけです。
分解能の悪さに対する対策としては、同じ処理を1000回とか10000回とか繰り返して、その時間を計測するのが常套手段ですが、繰返しができないようなものや、高い計測精度を必要とする場合は、別の方法を検討するしかありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Excel(エクセル) エクセルで勤務時間の計算をしています。 下記図でstartは勤務開始時間、endは勤務終了時間です。 5 2022/06/07 13:51
- Perl Perlで特定文字列から特定文字列までを抜き出したい 4 2022/04/02 14:24
- Perl Perlでファイルの末尾から指定文字列を検索してファイルに吐き出したい 4 2022/04/04 16:15
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- 英語 The clock was break.と、The clock broken.の違いと、使い分け方を 2 2023/08/23 19:32
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- C言語・C++・C# 3×3のラテン方陣をつくるプログラムを作成したのですが、(↓) #include <stdio.h> 5 2023/07/10 01:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、日付を入力すると...
-
「ご処理進めて頂きますようお...
-
switch の範囲指定
-
インタラクティブの反対語は?
-
VBAでCOPYを繰り返すと、処理が...
-
セックスレスの既婚女性は自慰...
-
メルカリのメルカードで買い物...
-
男性に対して、『女性への気遣...
-
iD
-
【Excel】特定の文字を含むセル...
-
お家デートをしててハグを長い...
-
UMLでの例外処理
-
エクセルVBA ListBox選択を反...
-
vba 空のデータをSplitする時の...
-
VBAでの四捨五入
-
Loadイベント中にほかのイベン...
-
生活保護受給者は性欲をどんな...
-
レジ返品交換について(時間がか...
-
VB.NET Excelを読み込んでDataT...
-
至急お願いします。 GoProにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
DoEventsがやはり分からない
-
月度は何て読みますか?
-
お家デートをしててハグを長い...
-
VB.NET Excelを読み込んでDataT...
-
VBの質問#if 0 then ってどう...
-
Do~Loopした回数をカウントしたい
-
VBAでCOPYを繰り返すと、処理が...
-
メルカリのメルカードで買い物...
-
インタラクティブの反対語は?
-
Loadイベント中にほかのイベン...
-
リョウ・・・量?料?
-
vba 空のデータをSplitする時の...
-
findは動くがfindnextがマクロ...
おすすめ情報