BBS.ChinaUnix.net
今日推荐    首页 | 新闻 | Linux | 博客 | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索     
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


两段完成同样功能的简单C代码
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页]
版主 flw   帅哥
广告杀手-法王
侠客



UID:14893
注册:2002-8-12
最后登录: 2008-05-17
帖子:18719
精华:10

可用积分:7521
信誉积分:790
专家积分:0 (本版)

状态:...在线...

[个人空间] [短信] [博客]


顶部
31楼 发表于 2008-3-25 15:36 


QUOTE:
原帖由 chzCPU 于 2008-3-25 15:28 发表
若用hash表,是不是会快一些?

嗯,如果链接一个 libperl.a,再调用 perl 的 hash 表,就更快了。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

data Maybe a = Nothing
             | Just a

---
如何知道一个变量是什么类型?
如何知道分配的内存有多大?
如何知道 select 的 fd_set 里哪个句柄是无效的?
如何知道指针是不是有效的?
如何通过 FILE 指针得到文件名?
……
如何知道我昨晚把袜子脱哪儿了?
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
chzCPU
骑士




UID:669782
注册:2008-2-21
最后登录: 2008-05-06
帖子:57
精华:0

可用积分:57
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
32楼 发表于 2008-3-25 15:48 
回复 #31 flw 的帖子

这个不太明白,大侠是否可以讲讲libperl.a中hash表更快的原因?

[ 本帖最后由 chzCPU 于 2008-3-25 15:51 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
版主 flw   帅哥
广告杀手-法王
侠客



UID:14893
注册:2002-8-12
最后登录: 2008-05-17
帖子:18719
精华:10

可用积分:7521
信誉积分:790
专家积分:0 (本版)

状态:...在线...

[个人空间] [短信] [博客]


顶部
33楼 发表于 2008-3-25 16:07 


QUOTE:
原帖由 chzCPU 于 2008-3-25 15:48 发表
这个不太明白,大侠是否可以讲讲libperl.a中hash表更快的原因?

有点幽默细胞好不好。
我是在否定你的观点。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

data Maybe a = Nothing
             | Just a

---
如何知道一个变量是什么类型?
如何知道分配的内存有多大?
如何知道 select 的 fd_set 里哪个句柄是无效的?
如何知道指针是不是有效的?
如何通过 FILE 指针得到文件名?
……
如何知道我昨晚把袜子脱哪儿了?
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
chzCPU
骑士




UID:669782
注册:2008-2-21
最后登录: 2008-05-06
帖子:57
精华:0

可用积分:57
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
34楼 发表于 2008-3-25 16:20 


QUOTE:
原帖由 flw 于 2008-3-25 16:07 发表

有点幽默细胞好不好。
我是在否定你的观点。

知道了!大侠的意思是在这种情况下hash表也帮不上忙! 谢谢flw



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
chzCPU
骑士




UID:669782
注册:2008-2-21
最后登录: 2008-05-06
帖子:57
精华:0

可用积分:57
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
35楼 发表于 2008-3-25 16:24 
回复 #31 flw 的帖子

看来若想要比switch快, 只有用汇编写了..



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
newIT666
侠客




UID:669779
注册:2008-2-21
最后登录: 2008-05-06
帖子:32
精华:0

可用积分:32
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
36楼 发表于 2008-3-25 16:33 
回复 #35 chzCPU 的帖子

用汇编写一定会比switch快吗?
汇编熟的人才行吧!

汇编靠人. C靠编译器.



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
chzCPU
骑士




UID:669782
注册:2008-2-21
最后登录: 2008-05-06
帖子:57
精华:0

可用积分:57
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
37楼 发表于 2008-3-25 22:15 


QUOTE:
原帖由 newIT666 于 2008-3-25 16:33 发表
用汇编写一定会比switch快吗?
汇编熟的人才行吧!

汇编靠人. C靠编译器.

哈哈!有一定的道理,但也不全是.



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
newIT666
侠客




UID:669779
注册:2008-2-21
最后登录: 2008-05-06
帖子:32
精华:0

可用积分:32
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
38楼 发表于 2008-3-26 09:59 
回复 #37 chzCPU 的帖子

汇编写得好,可以在机器这一级没有再优化的余地,编译器就未必了.



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
bbn9435 (本本牛)
新手



UID:343849
注册:2005-12-1
最后登录: 2008-04-26
帖子:10
精华:0

可用积分:10
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
39楼 发表于 2008-3-26 10:12 
回复 #1 system888net 的帖子

排除编译器优化的因素,个人认为1效率高些。
毕竟一个是jmp,另外一个是要已通过一系列的比较运算转化为相应的指令。
这也就是为什么switch语句存在的原因。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

Keep It Simple, Stupid.
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
alickexu   帅哥
新手




UID:317894
注册:2005-9-26
最后登录: 2008-05-16
帖子:6
精华:0

可用积分:16
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
40楼 发表于 2008-3-26 15:32 
都不高,不如写成:

int switch(int x)
{
    int SwitchTbl[4] = {0, 1, 6, 2, 8}
    return (x >= 4) ? f(x) : SwitchTbl[x];
}



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.063941 second(s), 4 queries , Gzip enabled