作者WalkingIce ( 杀手哥吉拉 13)
看板C_and_CPP
标题Re: [问题] unix下 c++程式 CLOCKS_PER_SEC 与CLK_ …
时间Sat Feb 14 20:51:27 2009
※ 引述《allanyh (allan)》之铭言:
: ※ 引述《WalkingIce ( 杀手哥吉拉 13)》之铭言:
: : 就像这一段的解释, CLOCKS_PER_SEC 没有给你甚麽讯息。
: : 你要除以 CLK_TCK 就会得到秒数了
: 不好意思,这样我又有点迷糊了,因为我的程式不可能跑100秒啊,不到一秒钟就run出来了
: 到底哪个才是把clock换算成秒数
你要算程式跑了多久是吗?
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <time.h>
4
5 int main() {
6 clock_t start,finish;
7 start = times(NULL);
8 int i = 0, temp = 0;
9 for(i = 0; i < 100000000 ; i++) {
10 // do nothing
11 }
12 sleep(2);
13 finish = times(NULL);
14 float elapsed = (float)(finish - start) / sysconf(2);
15 printf("Start: %d\nFinish: %d\n", start, finish);
16 printf("Passed:%f\n", elapsed);
17 }
$ gcc clock.c && ./a.out
Start: 1728665314
Finish: 1728665543
Passed:2.290000
或着你可以试试 gettimeofday,前几天刚拿来用
// Borrowed this part of code from ecore_time.c of Enlightenment project.
/* FIXME: clock_gettime() is an option... */
/**
* Retrieves the current system time as a floating point value in seconds.
* @return The number of seconds since 12.00AM 1st January 1970.
*/
double dindin_time_get(void) {
struct timeval timev;
gettimeofday(&timev, NULL);
return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
}
--
有一天小明跟朋友打牌,有张牌不小心掉进水里。此时女神出现了
女神:「你掉的是这张红中,还是这张白板?」
小明:「都不是,我掉的是青发。快还我吧大婶,我缺那张牌就自摸了」
女神:「.................(不爽)」
「你真是诚实的好孩子,红中跟白板都送你吧」
於是小明就相公了。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.177.157
1F:推 bizkit:冰哥你真是个好人 02/18 18:36