社区
Linux/Unix社区
帖子详情
请教 为什么linux下 clock()函数总是返回0
MichaelJon123
2012-02-29 03:56:05
请教 为什么linux下 clock()函数总是返回0
clock_t nTimeStart=clock();//计时开始
sleep(10);
cout <<clock()-nTimeStart<<endl;/////结果输出0
...全文
490
7
打赏
收藏
请教 为什么linux下 clock()函数总是返回0
请教 为什么linux下 clock()函数总是返回0 clock_t nTimeStart=clock();//计时开始 sleep(10); cout <<clock()-nTimeStart<<endl;/////结果输出0
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
justkk
2012-03-01
打赏
举报
回复
gettimeofday(&begin, NULL);
..
gettimeofday(&end, NULL);
end - begin
justkk
2012-03-01
打赏
举报
回复
可以考虑使用gettimeofday(),精确到微秒
gohome520
2012-03-01
打赏
举报
回复
[Quote=引用 4 楼 michaeljon123 的回复:]
诶,可以了。。但为什么不能像windows下
start = clock();
//一段程序
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
不行呢,而非要在循环里不断finish = clock()赋值呢;
[/Quote]
好像理解不太对。
其实3楼给的例子中,每个while循环都重新clock()赋值一下,这本身是为了让程序使用一些cpu。
你把这句话改成其他任何的代码都行的,比如printf("hello world\n");
也就是说:
start = clock();
while(i--)printf("hello world\n");
finish = clock();
应该也可以得到一个非0的时间,只要i够大。
至于你之前说,结果一直为0,可能是你要执行代码占用cpu很小或者基本不占用,所以会一直为0的。
MichaelJon123
2012-02-29
打赏
举报
回复
诶,可以了。。但为什么不能像windows下
start = clock();
//一段程序
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
不行呢,而非要在循环里不断finish = clock()赋值呢;
ADCC千月
2012-02-29
打赏
举报
回复
#include “stdio.h”
#include “stdlib.h”
#include “time.h”
库对么?给你发一个查运行时间的程序。你看看。
#include “stdio.h”
#include “stdlib.h”
#include “time.h”
int main( void )
{
long i = 10000000L;
clock_t start, finish;
double duration;
/* 测量一个事件持续的时间*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i-- )
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n ", duration );
system( "pause ");
}
MichaelJon123
2012-02-29
打赏
举报
回复
一样的不行啊,就连单纯输出clock()的值也是0
同样的代码在windows下行,但在linux下就不行
justkk
2012-02-29
打赏
举报
回复
clock 返回的是CPU时间吧,你只是sleep(10),是不会导致CPU时间占用增加的。
试试
clock_t nTimeStart=clock();//计时开始
for(int i = 0, int a = 8; i < 100000; i++ )
a *= 3;
cout <<clock()-nTimeStart<<endl;
linux
进程时钟时间,
Linux
的时钟
Linux
的时钟作者:
linux
er 发布于:2017-5-17 18:55分类:时间子系统一、前言时钟或者钟表(
clock
)是一种计时工具,每个人都至少有一块,可能在你的手机里,也可能佩戴在你的手腕上。如果
Linux
也是一个普通人的话,那么她的手腕上应该有十几块手表,包括:
CLOCK
_REALTIME、
CLOCK
_MONOTONIC、
CLOCK
_PROCESS_CPUTIME_ID、
CLOCK
_...
C语言
linux
环境下使用gettimeofday
函数
得到程序运行时间
编写的一个打字游戏中需要计算程序的运行时间,通过网上查阅资料发现大多数都是说通过
clock
()
函数
来获取时间,之后做差从而的到程序的运行时间。但是在
linux
中测试以后发现结果是0,并不能得到程序的运行时间。
请教
老师后得知可以通过引用头文件time.h,使用gettimeofday()
函数
。通过man gettimeifday可以查看详细信息:SYNOPSIS #include <
linux
task id,
请教
关于
Linux
下的进程管理
1、/proc/%d/sessionid这个确实是sessionid对应内核
函数
staticssize_tproc_sessionid_read(structfile*file,char__user*buf,size_tcount,loff_t*ppos){...length=scnprintf(tmpbuf,TMPBUFLEN,"%u",audit_get_s...
性能测试的时间间隔获取方法
性能测试的时候,一个问题就是时间间隔,有很多时间
函数
能获取时间,从而求取时间间隔。关于这方面的文章很多,我就不重复了,这里只是提供一些基本的信息,从而方便我自己做性能测试使用: (1)C语言时间
函数
clock
()和
clock
_t: time.h中的c语言时间
函数
clock
()能获取当前时间。需要注意的是,这个
函数
在Windows和
Linux
下是通用的,但是其
返回
值的单位是不同的,一个是
Linux
下memcpy性能测试
最近在使用x86平台(硬件环境:Intel Xeon E5V4,DDR4 32GB )时,发现性能存在一个瓶颈,和用户预期效果存在一点差距。于是排查用户代码,发现其中存在一个对大段内存拷贝的操作,也就是使用memcpy一次拷贝4MB以上数据,心想如果能减少拷贝时间应该就能解决问题。于是自己写了一个测试程序专门用来测试memcpy的时间。代码如下: /* ================...
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章