表头文件:#include
struct timeval{ long tv_sec; //秒 long tv_usec;//微妙}struct timezone{ int tz_minuteswest;//和格林威治时间差了多少分钟 int tz_dsttime; //日光节约时间的状态}它获得的时间精确到微秒(1e-6 s)量级。在一段代码前后分别使gettimeofday可以计算代码执行时间:struct timeval tv_begin, tv_end;gettimeofday(&tv_begin, NULL);foo();gettimeofday(&tv_end, NULL);[root@localhost ~]# time ./filename
anaconda-ks.cfg install.log install.log.syslog satools text
real 0m0.009s
user 0m0.002s
sys 0m0.007s
real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。
sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间。
当程序时间运行较长时,uesr总是比sys耗时更长
Linux系统命令time给出的用户时间,系统时间,实际时间分别是什么含义? 本次实验我们了解了Linux中的time的用法。其中: a. real时间是指挂钟时间,也就是命令开始执行到结束的时间,这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。 b. user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。 c. sys 时间是花费在内核模式中的CPU时间,代表在内核中执行系统调用所花费的时间,这也是真正由进程使用的CPU时间。
clock()和gettimeofday()函数获取的CPU时间和总时间是什么含义? a. clock()是指:运行程序进程到调用clock()的时间,是相对时间。 b. gettimeofday()是指:格林威治时间到调用gettimeofday的()时间,是绝对时间。 c. 他们都不能测精确的CPU时间,只能通过某种方式间接测出大概的CPU时间。
实验中各种方法获得的计时相关数值分别是什么精度,相互之间有什么关系? a. Clock的精度在Linux下是1微秒,在WIN下是1毫秒 b. Gettimeofday精确到1微秒 c. 命令time精确到秒的小数点后三位
另外,C++库函数中的clock()的用法: - include time.h - clock_t clock(void); - 功能:函数返回自程序开始运行的处理器时间,如果无可用信息,返回-1。 转换返回值以秒记, 返回值除以CLOCKS_PER_SECOND=1 000 000
其次,GCC的命令: 第一种编译方法: - gcc filename.c -o filename - gcc编译文件(一步到位) 第二种编译方法另一种编译方式:
gcc -E hello.c -o hello.i //预编译过程 gcc -S hello.i -o hello.s //编译过程 gcc -c hello.s -o hello.o //汇编过程 gcc hello.c -o hello //链接过程 -o 是编译出的文件名字
新闻热点
疑难解答