【发布时间】:2012-07-02 02:17:57
【问题描述】:
我想测量我的 C++ 程序所花费的时间,但如果我使用:
time_t begin, end;
time_t(&begin);
func(); //my function...it contains the code whose elapsed time I want to measure
time(&end);
cout<<"\n Time elapsed:"<<difftime(end, begin) <<" seconds"<<endl;
我得到的时间是 0 秒。
gprof 在我的情况下也不起作用,因为它表明它无法分配我的程序所需的内存量。
是否有其他方法可以测量我的程序所需的时间量。 Valgrind 的地块工具确实显示了快照所用的时间,但文档没有提到它是以毫秒还是微秒为单位。
请推荐一个合适的方法?
如果我能以毫秒为单位测量时间就好了。
【问题讨论】:
-
在 shell 中使用
time实用程序?假设您正在运行 *nix。或者你可以使用 C 函数clock()来计算时钟滴答声。 -
我用过,但它仍然给我..经过的时间是 0
-
你必须在函数之前和函数之后调用一次时间。好像忘记记录函数前的时间了。
-
抱歉……我的错……打错字了:(但问题依旧。
-
timeshell 中的实用程序通常会给你以毫秒为单位的时间,假设你想要计时的函数是程序中唯一的东西。不过,它也会计算程序在函数之外花费的时间。