[解決済み】C言語プログラムの実行時間について
質問
私は、複数のプロセッサで並列に実行することを目的としたCプログラムを持っています。実行時間(1秒から数分まで)を記録する必要があります。検索してみましたが、どれも
clock()
関数で割ったクロック数を計算します。
Clocks_per_second
の値です。
がどうなっているのかよくわからない。
Clocks_per_second
の値は計算されるのですか?
Javaでは、実行前後の現在時刻をミリ秒単位で取るだけなのですが。
C言語でも似たようなことはあるのでしょうか?調べてみたのですが、1秒の分解能以上のものを得る方法が見つからないようです。
また、プロファイラが選択肢になることは承知していますが、自分でタイマーを実装することを検討しています。
ありがとうございます
解決するには?
CLOCKS_PER_SEC
で宣言されている定数です。
<time.h>
. Cアプリケーション内のタスクが使用するCPU時間を取得するには、次のようにします。
clock_t begin = clock();
/* here, do your time-consuming job */
clock_t end = clock();
double time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
これは時間を浮動小数点型として返すことに注意してください。これは1秒よりも正確な値になります(例:4.52秒を計測する)。精度はアーキテクチャに依存します。最近のシステムでは10ms以下が簡単に得られますが、古いWindowsマシン(Win98時代)では60msに近い精度が得られます。
clock()
は標準的なC言語であり、どこでも動作します。のようなシステム固有の関数があります。
getrusage()
Unix系システムで
Java の
System.currentTimeMillis()
は同じものを測定しているわけではありません。これは壁掛け時計であり、プログラムの実行にかかった時間を測定するのに役立ちますが、CPU時間がどのくらい使われたかはわかりません。マルチタスクのシステム(つまりすべてのシステム)において、これらは大きく異なる可能性があります。
関連
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み】 error: too few arguments to function `printDay' (C言語)
-
[解決済み】エラー:イニシャライザー要素がロード時に計算可能でない
-
[解決済み】 switch case: error: case label does not reduce to an integer constant
-
[解決済み】式は変更可能なL値でなければならない
-
[解決済み】C 未知の型名「my_structure」。
-
[解決済み】MB/sとMiB/sを計算する方法は?
-
[解決済み】C言語でint64_t型を表示する方法
-
[解決済み】execvp: バッドアドレスエラー
-
[解決済み] time(1) の出力における 'real', 'user' および 'sys' はどのような意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】 strcpyとstrdupの比較
-
[解決済み】エラー:イニシャライザー要素がロード時に計算可能でない
-
[解決済み】式は変更可能なL値でなければならない
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み】エラー:不明な型名'bool'
-
[解決済み] Cプログラムで「配列の添え字が整数でない」。
-
[解決済み】Errno: 11, Resource Temporarily Unavailable(リソースが一時的に利用できない
-
[解決済み] ANSI Cでミリ秒単位で時間を計るには?
-
[解決済み】C++で関数の実行時間を測定する