程序在c中查找添加的执行时间
发布时间:2020-12-16 09:56:25 所属栏目:百科 来源:网络整理
导读:我想在C中找到加法指令的执行时间.我知道如何找到使用for循环,但我不想使用任何循环.我想找一条指令.我写了这段代码. void main(){ int a=34,b=56,c,i; clock_t start,end; double exectime; start=clock(); c=a+b; end=clock(); exectime=(double)(end-star
我想在C中找到加法指令的执行时间.我知道如何找到使用for循环,但我不想使用任何循环.我想找一条指令.我写了这段代码.
void main() { int a=34,b=56,c,i; clock_t start,end; double exectime; start=clock(); c=a+b; end=clock(); exectime=(double)(end-start)/CLOCKS_PER_SEC; printf("nExecution Time= %f n",exectime); } 但输出结果为0.我也试过转换为纳秒,但仍然没有工作. 解决方法
您的代码无法正常工作的简短答案是您的程序执行得太快. CLOCKS_PER_SEC通常定义为每个tick等于1微秒(CLOCKS_PER_SEC等于1百万) – 单个加法操作所需的操作远远少于1微秒.事实上,在我的机器上,我必须执行数百万条指令才能获得非零测量值.
C中没有标准的方法来测量单个add指令的长度.您可以在现代x86处理器中使用rdtsc指令来测量CPU时钟周期,但即使这样也不能保证精度. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |