对具有高分辨率和可移植性的代码段进行计时的最佳方式是什么?

/* Time from here */
ProcessIntenseFunction();
/* to here. */

printf("Time taken %d seconds %d milliseconds", sec, msec);

有没有具有跨平台解决方案的标准库?

推荐答案

我认为这应该奏效:

#include <time.h>

clock_t start = clock(), diff;
ProcessIntenseFunction();
diff = clock() - start;

int msec = diff * 1000 / CLOCKS_PER_SEC;
printf("Time taken %d seconds %d milliseconds", msec/1000, msec%1000);

C++相关问答推荐

在C、Linux中同步进程

如何从TPS特定的TGPT_PUBLIC数据 struct 中以OpenSSL的EVP_PKEY

需要大整数和浮点数.使用long long int和long double

标准的C17标准是用括号将参数包装在函数声明中吗

手动矢量化性能差异较大

两个连续的语句是否按顺序排列?

当我运行/调试C程序时,Malloc()似乎正在将&q;r\r...&q;赋值给一个指针,我不确定为什么?

如何在C中使printf不刷新标准输出?

`#if`条件中是否允许`sizeof`?

将 struct 传递给函数

解决S随机内存分配问题,实现跨进程高效数据共享

我在C程序的Flex/Bison中遇到语法错误

从C中的函数返回静态字符串是不是一种糟糕的做法?

从另一个宏函数调用C宏

计算SIZE_MAX元素的长数组的大小

使用mmap为N整数分配内存

为什么GCC不能在 struct 初始值设定项中以sizeof作为条件的三进制中处理复合文字的编译时求值?

分支预测和UB(未定义的行为)

无法理解 fgets 输出

10 个字节对于这个 C 程序返回后跳行的能力有什么意义