01 2012存档

代码review

| | Comments (1) | TrackBacks (0)
我:我们有两台机,都是一样的 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/

治咳嗽

| | Comments (2) | TrackBacks (0)
去年冬天的时候,我去附近的医院看病。医生给开了500多块的药,就为了治一个小小的咳嗽。

上个月又有一点咳嗽。正巧团队活动,出去吃了一顿金钱豹(自助餐)。晚上回到家。

我:我感觉咳嗽好多了
爸:好像是,你进门这么久了,一声也没咳
我:看来吃金钱豹可以治咳嗽咧
老婆:呵呵,200块治一个咳嗽,嗯,比医院还是便宜多了

关于存档

This page is an archive of entries from 01 2012 listed from newest to oldest.

12 2011 is the previous archive.

02 2012 is the next archive.

Find recent content on the main index or look in the 存档 to find all content.