Unix-Center 机器速度

博主通过让CPU从0数到2^30-1并记录所用时间的方式,测试了几台Unix体验中心机器的运行速度。测试代码使用C语言编写,并利用了gettimeofday函数来获取时间。测试结果显示某些机器的速度并不理想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=medium]
最近无聊的很,突然心血来潮想测试一下 Unix 体验中心几台机器的运行速度。测试方式很简单,就是我在幼儿园深造期间,大人们用来衡量我们这些小屁孩智力程度的办法——数数,不过现在要让 CPU 来数数,看看从 0 数到 2^30 - 1 要多长时间 :wink:
[/size]


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>

int
main()
{
int i;
unsigned char hash_128bit[16];
unsigned char *ptrhash = hash_128bit;
struct timeval tpstart, tpend;
float timeuse;
gettimeofday(&tpstart, NULL);
memset(ptrhash, '\0', 16);
/*
*如果循环终止条件改成 hash_128bit[16] ^ 0xFF,
*从测试数 1G 个数的时间来看,以现有的计算机速度,
*估计到宇宙毁灭时,循环也不会结束,可见暴力破解 MD5 是不可行的^^
*/
while (hash_128bit[3] ^ 0x3F) {
i = 0;
while (i < 16) {
hash_128bit[i] += 1;
if (hash_128bit[i] != 0) {
break;
} else {
i++;
}
}
/*printf("%d,", hash_128bit[i]);*/
}
gettimeofday(&tpend, NULL);
timeuse = 1000000 * (tpend.tv_sec - tpstart.tv_sec)
+ tpend.tv_usec - tpstart.tv_usec;
printf("%fS\n", timeuse / 1000000);
return 0;
}


[size=medium]
最终测试结果出人意料,这些 CPU 数数的速度还不如我自己的虚拟机快。这是怎么一回事呢?尤其是 X4100 这台机器,使用2 颗双核单线程的AMD Opteron 280芯片,CPU 主频为2.4 GHz,居然要 10s 才能数完 1G 个数,比我的虚拟机多一倍的时间。费解…… 8)
[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值