01 2012存档
我:我们有两台机,都是一样的 xeon E5620 2.4G 的CPU,但是,跑算Pi的程序,5000个迭代,一个机器跑48秒,另一个只需要32秒
coly:CPU核数一样吗?
我:一样的。不一样应该没关系,我这是单进程。
coly:内存速度不一样?
我:就一个算Pi,总共就占8MB内存,还没有CPU的L3 cache大呢
coly:要不这样,你写个死循环加法,我们看看两边的速度是不是一样
(公司的盒饭送来了,晚饭时间)
coly:你先吃,我来写吧....一个死循环我应该还是能写出来的....你要review我的代码哟~
我:....
(coly把代码写出来了
int main(void)
{
int a=0;
while ( a < 0) {
a++;
}
return 0;
}
)
coly:为什么我运行瞬间就结束了?
我:应该是编译器把你的死循环优化掉了,因为a这个变量在整个main函数里都没有被其它地方使用
coly: 喔~~,我改改,在结尾加个printf把a打出来
(程序一运行还是瞬间结束)
陈同学:(看了看代码)是不是加法太快了,看不出来?咱们加几个嵌套循环
coly:好~
(程序还是瞬间结束)
coly:怪了....靠,a的值是0啊,根本进不了循环!
我,陈同学齐声:喔~~~
coly:你们两个!怎么review代码的!
后记:
死循环程序写出来了,两台机器CPU的计算速度确实有差异,原因最后由柯旻同学揭示:
跟华为2285机器的cpu 频率控制有关
CPU不开启cpuspeed就是1.6G的主频,需要
/sbin/modprobe acpi-cpufreq
echo ondemand |sudo tee /sys/devices/system/cpu/cpu13/cpufreq/scaling_governor
后,主频才上到真正的2.4G
这是在公司做简单介绍的PPT,只是推广性的梗概,欲知实现细节的看这里 http://lwn.net/Articles/441343/
Ext4 new feature - bigalloc
View more presentations from donghao.
去年冬天的时候,我去附近的医院看病。医生给开了500多块的药,就为了治一个小小的咳嗽。
上个月又有一点咳嗽。正巧团队活动,出去吃了一顿金钱豹(自助餐)。晚上回到家。
我:我感觉咳嗽好多了
爸:好像是,你进门这么久了,一声也没咳
我:看来吃金钱豹可以治咳嗽咧
老婆:呵呵,200块治一个咳嗽,嗯,比医院还是便宜多了