加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

程序在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时钟周期,但即使这样也不能保证精度.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读