搜索
查看: 2889|回复: 34
打印 上一主题 下一主题

小调查:运行计时程序,测试电脑运行速度

[复制链接]
跳转到指定楼层
楼主
发表于 2017-8-8 13:38:57 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
将以下代码编译运行,屏幕上会输出一个整数(四舍五入后的结果)。
如果把%.0f改成%f,你会发现这个小数每次可能略微有一点差别。不过没关系,四舍五入之后就没事了。

[mw_shl_code=c,false]#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
        int i=1000000000;
        double f;
        f=(double)clock()/CLOCKS_PER_SEC;
        while(i--);
        f=(double)clock()/CLOCKS_PER_SEC-f;
        printf("%.0f",f);
        system("pause>nul");
        return 0;
}
[/mw_shl_code]

也可以在附件中打开。
单选投票, 共有 17 人参与投票 查看投票参与人

投票已经结束

58.82% (10)
5.88% (1)
0.00% (0)
0.00% (0)
0.00% (0)
5.88% (1)
0.00% (0)
11.76% (2)
17.65% (3)
您所在的用户组没有投票权限
沙发
 楼主| 发表于 2017-8-8 13:41:58 | 显示全部楼层

小调查:运行计时程序,测试电脑运行速度

附件:计时.c
这是将变量i从十亿循环到0。

计时.c

263 Bytes, 下载次数: 24

程序

板凳
 楼主| 发表于 2017-8-8 13:42:51 | 显示全部楼层
我自己的电脑时间是8秒。
地板
 楼主| 发表于 2017-8-8 13:43:24 | 显示全部楼层
运行后不要着急,几秒后才会显示结果。
5#
 楼主| 发表于 2017-8-8 14:44:47 | 显示全部楼层
初学C,你的电脑有那么快?
4499APPLE,我怀疑你是故意捣乱

点评

-100APPLE  发表于 2018-3-11 19:18
“4499APPLE”???  发表于 2018-3-11 18:36
6#
 楼主| 发表于 2017-8-8 17:39:04 | 显示全部楼层
本帖最后由 赵林 于 2017-8-8 17:41 编辑

改成i=1000000000
if(i--)更快
另外设置一个s2,赋值为GetTickCount()-s,最后输出s2这样更好
不过我个人不喜欢用GetTickCount函数,我的电脑用这个容易出问题你等我试验一下
7#
 楼主| 发表于 2017-8-8 17:53:47 | 显示全部楼层
另外我的Win10运行结果为2814ms,用我的方法改完之后是2598ms,节省了200ms。
但是用goto代替while并用GetTickCount代替clock只能节省100ms。
重要的还是寄存器。
8#
 楼主| 发表于 2017-8-8 18:12:32 | 显示全部楼层
我在time.h头文件的第101行(我用的是c++的编译器,可能和你的不一样)查到宏定义:
#define CLOCKS_PER_SEC 1000
所以不除以CLOCKS_PER_SEC也行,单位就是ms
9#
 楼主| 发表于 2017-8-8 18:13:50 | 显示全部楼层
但即使用寄存器变量也无法解决啊哈挑战19啊!我运行了1分钟都不行
10#
 楼主| 发表于 2017-8-8 19:42:16 | 显示全部楼层
初学C 发表于 2017-8-8 18:36
这个速度肯定快一些(100000000 - (i++))

第九行看不见后面是什么
11#
 楼主| 发表于 2017-8-10 11:59:48 | 显示全部楼层
参与调查有机会得到赠送的啊哈币!
12#
 楼主| 发表于 2017-8-10 12:00:24 | 显示全部楼层
请注意:从现在开始。
13#
 楼主| 发表于 2017-8-12 20:59:16 | 显示全部楼层
参与调查赠送啊哈币!
14#
 楼主| 发表于 2017-8-14 13:05:39 | 显示全部楼层

谢谢。以下内容密码已发到你的个人空间,如泄漏则没收啊哈币




15#
 楼主| 发表于 2017-8-14 13:07:19 | 显示全部楼层
本帖为密码帖 ,请输入密码 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表