
unsigned long HighStart,LowStart,HighEnd,LowEnd;
__int64 start =0;
__int64 end = 0;
__int64 timer =0;
//获取代码运行开始时cpu内部计数器的值
__asm
{
RDTSC
mov HighStart, edx
mov LowStart, eax
}
for(int i= 0; i<100000; i++ )
{
for(int i= 0; i<100000; i++ )
{
}
}
//获取代码结束时cpu内部计数器的值,并减去初值
__asm
{
RDTSC
mov HighEnd, edx
mov LowEnd, eax
}
start = (__int64) HighStart<<32;
start |= (__int64) LowStart;
end = (__int64) HighEnd<<32;
end |= (__int64) LowEnd;
timer = end - start;
//输出代码段运行的时钟周期数
//以频率11Gcpu为例,如果换计算机把其中的26改乘其它即可,因为相信大家的cpu都应该在1G以上 ^_^
cout<< (double) (timer /26/1000000000) << endl;
return 0;
#include<stdioh>
#include<stdlibh>
#include<timeh>
void main()
{
clock_t start, finish;
double duration=0;
start = clock();
/
添加代码
/
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", duration );
}
把你需要计算时间的代码添加进去就可以结算出时间了。有不明白的可以继续问我。
C++中获得当前系统时间 (2005-10-14 21:55:00)
收藏 评论 打印 关闭
//方案— 优点:仅使用C标准库;缺点:只能精确到秒级
#include <timeh>
#include <stdioh>
int main( void )
{
time_t t = time( 0 );
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );
puts( tmp );
return 0;
}
//方案二 优点:能精确到毫秒级;缺点:使用了windows API
#include <windowsh>
#include <stdioh>
int main( void )
{
SYSTEMTIME sys;
GetLocalTime( &sys );
printf( "%4d/%02d/%02d %02d:%02d:%02d%03d 星期%1d\n",syswYear,syswMonth,syswDay,syswHour,syswMinute,syswSecond,syswMilliseconds,syswDayOfWeek);
return 0;
}
//方案三,优点:利用系统函数,还能修改系统时间
#include<stdlibh>
#include<iostream>
using namespace std;
void main()
{
system("time");
}
//方案四,将当前时间折算为秒级,再通过相应的时间换算即可
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
time_t now_time;
now_time = time(NULL);
cout<<now_time;
return 0;
}
这看起来像是51单片机的汇编, 12T的话,就是每个指令周期都需要12个时钟周期,一个U就循环一次,你数数几条指令要执行就行了然后查一下手册,看看每条指令需要几个指令周期,不同的指令是不同的而且每个51单片机也不同
不过这个方式绝对不适合精确延时,也就大概延迟一下而已
修改如下,可以精确到毫秒的
#include<stdioh>
#include<stdlibh>
#include<timeh>
#include<windowsh>
int main()
{
time_t start,end;start=clock();//用clock(),它可以精确到毫秒的
Sleep(30); //调试的时候发现好像要大于10才能输出时间
end=clock();
printf("程序运行时间为:%lfs\n",double(end-start)/CLOCKS_PER_SEC);
//CLOCKS_PER_SEC在timeh中定义,为1000,为毫秒换算成秒的基
system("pause");
return 0;
}
有个timeh 头文件
clock_t start,end;
start=clock();
end = clock();
end-start就是了。
单位为ms,但是不能太精确,因为其实返回的是clock数,但是一般够用了,你可以搜一下。
以上就是关于C语言运行一条语句所用时间如何计算全部的内容,包括:C语言运行一条语句所用时间如何计算、c语言clock怎么用啊 算程序运行时间谢谢大家了、在C++编译环境中运行代码时如何获得系统时间要求程序运行前一次,运行后一次。即获得程序运行时间。谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)