• 将clock_t转化为秒值在Windows与Linux平台下的差别




    作者: theset  出自: http://www.linuxdiyf.com
    一样平凡巨大写测试措施的时分常常要计算措施执行的时辰,尤其是近来训练Intel多核编程时,需求判断翻开openmp参数与否的执行时辰的对比。

    平凡代码是如许写的:


    #include
    clock_t start, stop;
    ....
    start = clock();
    do_something();
    stop = clock();
    printf("%f", (double)(stop-start)/1000.0) ;
    .....

    大概是求以后时辰的秒值:

    double t = (double) clock()/1000.0;

    但是如许的代码在Windows平台下是正确的(固然会如许写也是因为上Intel培训课时,例程都是这么写的),而到了Linux平台下,这个措施就错了,会发明时辰一下多了1000倍。

    究竟上,clock_t的值转换为秒应该是除以CLOCKS_PER_SEC这个宏,而这个宏在Windows平台下是1000,而到了Linux平台下便是1000000了。

    因此措施正确的写法是:

    #include
    clock_t start, stop;
    ....
    start = clock();
    do_something();
    stop = clock();
    printf("%f", (double)(stop-start)/(double)CLOCKS_PER_SEC) ;
    .....

    如许才干担保措施在跨平台移植时的正确性。




    版权声明: 原创作品,批准转载,转载时请务必以超链接情势标明文章 原始因由 、作者信息和本声明。不然将追查执法责任。

  • 相关阅读:
    CEAA自动汇编脚本常用命令
    PIC之拉电流和灌电流
    CHARRANGE 结构
    汇编中的lodsb和stosb、lodsd和stosd指令
    汇编中的STOSB与STOSD指令
    汇编中的CLD指令
    SQL中distinct的用法
    SQL union介绍
    【项目排期】测试排期问题思考
    SQL join的介绍
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1973802.html
Copyright © 2020-2023  润新知