C语言运行一条语句所用时间如何计算

C语言运行一条语句所用时间如何计算,第1张

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++编译环境中运行代码时如何获得系统时间要求程序运行前一次,运行后一次。即获得程序运行时间。谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10051009.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存