gpt4 book ai didi

profiler - 测量程序的运行时间

转载 作者:行者123 更新时间:2023-12-04 23:33:09 26 4
gpt4 key购买 nike

我需要一个工具来测量程序的运行时间,比如 gprof。但是gprof的分辨率不够好(约0.01秒)。 oprofile 似乎可以做到,我将尝试学习如何获取有关时间信息的数据,但我不能。

那么,谁能告诉我如何做到这一点,或者谁知道其他工具可以做同样的事情?

最佳答案

在高分辨率下测量整个程序执行的运行时间很少有用。在分析事物时,您通常不想包含太多的开销。

仅测量某些关键路径的执行时间通常会更好,即使如此,多次重复执行该路径通常也是一个好主意,以提高计时精度。

在 Linux/POSIX 系统下,gettimeofday()通常用于此类计时,它具有微秒级精度:

#include <sys/time.h>
#include <time.h>
#include <stdio.h>

int main(void)
{
struct timeval then, now;
int i;

gettimeofday(&then, NULL);
for(i = 0; i < 100000; i++)
my_interesting_function();
gettimeofday(&now, NULL);

printf("Did %d executions in %.3g seconds\n", i, now.tv_sec - then.tv_sec + 1e-6 * (now.tv_usec - then.tv_usec));

return 0;
}

以上假设 my_interesting_function()是您要测量其性能的函数。当然,根据函数的实际运行时间调整重复次数。

关于profiler - 测量程序的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2198597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com