C および C での効率的な経過時間測定
プログラミングにおけるパフォーマンス分析には、経過時間を正確に測定することが重要です。ただし、標準の C 関数 time() は、短期間のタスクでは信頼性が低くなる可能性があります。
C で gettimeofday() を使用する
この問題に対処するには、C プログラマは次のことを行うことができます。 gettimeofday() 関数を使用すると、マイクロ秒の精度で現在時刻が返されます。以下に例を示します。
#include <sys/time.h> struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Start time // Perform long-running tasks gettimeofday(&endTV, NULL); // End time time_t diffSeconds = endTV.tv_sec - startTV.tv_sec; long diffMicroseconds = endTV.tv_usec - startTV.tv_usec; printf("Time taken: %ld seconds, %ld microseconds\n", diffSeconds, diffMicroseconds);
C での std::chrono の使用
C では、 std::chrono ライブラリは、より現代的で移植可能な測定ソリューションを提供します。経過時間。次の例を考えてみましょう:
#include <chrono> using namespace std::chrono; auto begin = steady_clock::now(); // Start time // Perform long-running tasks auto end = steady_clock::now(); // End time duration<double, nano> diff = end - begin; cout << "Time taken: " << diff.count() << " nanoseconds" << endl;
結果の理解
gettimeofday() と std::chrono の両方の出力は、秒とマイクロ秒単位の時間差を返します/ナノ秒。例:
最初の例では、経過時間は 4.025 秒ですが、 2 番目の例では、0.026339 秒です。 std::chrono はデフォルトでナノ秒を返すため、必要に応じてマイクロ秒または秒に手動で変換する必要がある場合があることに注意してください。
以上がC および C の経過時間を正確に測定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。