有没有办法以编程方式获取C程序运行的总时间,以及在特定函数中花费的时间量?我需要在代码中执行此操作,因为我想将这两个值用作另一个函数的参数。由于我在Linux上,我能用gprof或perf来做这个吗?
答案 0 :(得分:2)
在程序启动时占用系统时间。然后,只要您需要,您就可以获得当前时间并减去开始时间。这可以告诉你在闹钟时间里跑了多久。
有一个全局布尔值Q,在你输入函数时设置为True,当它退出时设置为False,所以当程序“在”函数中时(包含),它只是True。
< / LI>设置定时器中断每N ms关闭一次,并有两个全局计数器A和B.(N不必小。)当定时器中断时,让它增加B,但是只有如果Q为真,则递增A.
这样,您就知道已经过了多长时间,而A / B是您的函数在堆栈上的时间的一小部分。
BTW:如果函数是递归的,那么让Q为整数“深度计数器”。否则,没有变化。
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以gprof使用相同的内容。