计算C程序中特定函数所花费的时间

标签 c timer clock

我有一个代码,我想计算两种排序算法合并排序和快速排序所花费的时间,以微秒或更精确的方式对 N 个数字进行排序。 这样计算出的两个时间将输出到终端。 代码(部分代码):

printf("THE LIST BEFORE SORTING IS(UNSORTED LIST):\n");
printlist(arr,n);
mergesort(extarr,0,n-1);
printf("THE LIST AFTER SORTING BY MERGE SORT IS(SORTED LIST):\n");
printlist(extarr,n);
quicksort(arr,0,n-1);
printf("THE LIST AFTER SORTING BY QUICK SORT IS(SORTED LIST):\n");
printlist(arr,n);

通过提供如何完成它来帮助我。我尝试过使用两个变量作为开始停止并将它们分别保持在函数调用上方和下方,但这根本没有帮助,并且总是将其差异打印为零。 请建议一些其他方法或功能,请记住它在任何类型的操作系统中运行都没有问题。 感谢您提前提供的任何帮助。

最佳答案

方法:1

要计算程序所花费的总时间,您可以使用linux实用程序“time”。

    Lets your program name is test.cpp.
    $g++ -o test test.cpp
    $time ./test

    Output will be like :
    real    0m11.418s
    user    0m0.004s
    sys 0m0.004s

方法:2

您还可以使用 Linux 分析方法“gprof”通过不同的函数查找时间。

首先,您必须使用“-pg”标志编译程序。

    $g++ -pg -o test test.cpp
    $./test
    $gprof test gmon.out

PS:gmon.out是gprof创建的默认文件

关于计算C程序中特定函数所花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12791676/

相关文章:

timer - 在blazor服务器中使用PeriodicTimer刷新组件的最佳方法是什么

bash - 如何在 bash 中创建秒表?

c++ - 如何使用 linux 获取以滴答为单位的时钟周期值?

c - 从预分配内存中直接读取 C 中的结构失败

c - IEEE-754: "smallest"溢出条件

javascript - 如何在没有任何客户端运行的情况下更改 Firebase 上的数据?

c++ - Boost C++ date_time microsec_clock 和 second_clock

python - 在 python 中每 5 分钟运行一次与系统时钟同步的函数的最佳方法是什么?

代码在 Xcode 中不工作,但在 NetBeans 中工作正常?

C:如何迭代 `signed int` 的所有可能值,从 `INT_MIN` 到 `INT_MAX` ?