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 秒,而在第二个示例中例如,它是 0.026339 秒。请注意,std::chrono 默认返回纳秒,因此如果需要,您可能需要手动将它们转换为微秒或秒。
以上是如何准确测量 C 和 C 中经过的时间?的详细内容。更多信息请关注PHP中文网其他相关文章!