LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: ifree

好像发现一个gcc 4.1的bug!

[复制链接]
发表于 2006-5-9 20:17:35 | 显示全部楼层
float f = j;
unsigned int* p = (unsigned int*)(&f);

这样写程序,bug会很多。
基本不这样作指针转换的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-9 23:03:10 | 显示全部楼层
写程序一般当然不会这样写。这里这样写仅仅是用于测试,因为浮点数表示中阶码恰好就是最高bit所在位。想看看这样写是否能够提高程序性能。结果发现,还没有二分查找快。

我现在学编程,对程序性能没有一个直观的认识,感到很迷惑。总觉得这样写会不会太慢了?对CPU时间有种很抠门的趋势,生怕一条冗余的指令就会使得程序性能大大下降。

还有,现在的电脑2G的CPU到底有多快呢?是不是太快了,搞得现在虚拟机、解释性程序满天飞?我算了算,写一个虚拟机的程序,又要解码、译码;又要根据不同指令调用不同函数(或者switch);还要模拟机器的内存及其算术运算。原来真实硬件一条指令在虚拟机里面需要大约50条指令方可实现,那么性能比大约为50:1;这样是不是一台2G的CPU电脑相当于40M的CPU在用?比一台现在看起来差得不能再差的电脑都不如了。这样说来,我们买的电脑大部分性能都被浪费。

一些典型任务需要多大的处理能力?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表