免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: system888net
打印 上一主题 下一主题

两段完成同样功能的简单C代码 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
31 [报告]
发表于 2008-03-25 15:36 |只看该作者
原帖由 chzCPU 于 2008-3-25 15:28 发表
若用hash表,是不是会快一些?

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

论坛徽章:
0
32 [报告]
发表于 2008-03-25 15:48 |只看该作者

回复 #31 flw 的帖子

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

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

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
33 [报告]
发表于 2008-03-25 16:07 |只看该作者
原帖由 chzCPU 于 2008-3-25 15:48 发表
这个不太明白,大侠是否可以讲讲libperl.a中hash表更快的原因?

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

论坛徽章:
0
34 [报告]
发表于 2008-03-25 16:20 |只看该作者
原帖由 flw 于 2008-3-25 16:07 发表

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



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

论坛徽章:
0
35 [报告]
发表于 2008-03-25 16:24 |只看该作者

回复 #31 flw 的帖子

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

论坛徽章:
0
36 [报告]
发表于 2008-03-25 16:33 |只看该作者

回复 #35 chzCPU 的帖子

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

汇编靠人. C靠编译器.

论坛徽章:
0
37 [报告]
发表于 2008-03-25 22:15 |只看该作者
原帖由 newIT666 于 2008-3-25 16:33 发表
用汇编写一定会比switch快吗?
汇编熟的人才行吧!

汇编靠人. C靠编译器.

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

论坛徽章:
0
38 [报告]
发表于 2008-03-26 09:59 |只看该作者

回复 #37 chzCPU 的帖子

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

论坛徽章:
0
39 [报告]
发表于 2008-03-26 10:12 |只看该作者

回复 #1 system888net 的帖子

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

论坛徽章:
0
40 [报告]
发表于 2008-03-26 15:32 |只看该作者
都不高,不如写成:

int switch(int x)
{
    int SwitchTbl[4] = {0, 1, 6, 2, 8}
    return (x >= 4) ? f(x) : SwitchTbl[x];
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP