免费注册 查看新帖 |

Chinaunix

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

用汇编写出比C更有效率的程序? [复制链接]

论坛徽章:
0
51 [报告]
发表于 2008-03-22 10:36 |只看该作者
部分关键代码用汇编来写,以提高执行效率 这是公认的,没有什么可以质疑的。


汇编直接对应机器指令,避免编译器编译后的无效指令。

论坛徽章:
0
52 [报告]
发表于 2008-03-22 14:55 |只看该作者
除了开发操作系统之类对效率苛求的程序外 都不应该用汇编开发,优化的提高还不如提高运行机器的性能更能降低成本。(嵌入式开发除外)

论坛徽章:
0
53 [报告]
发表于 2008-03-22 16:02 |只看该作者
现在的人用C写东西运行速度都慢吞吞的,你叫他用汇编,能运行的起来恐怕都要鼓掌了

论坛徽章:
0
54 [报告]
发表于 2008-03-22 18:06 |只看该作者
这种问题总是讨论得很厉害

论坛徽章:
0
55 [报告]
发表于 2008-03-22 18:12 |只看该作者
原帖由 dxcnjupt 于 2008-3-20 14:47 发表
一个概念上的错误
因为写编译器的人很牛-->推论-->编译器编译的代码执行效率很高
有一定的道理,但并不是正确的.

编译器是基于一定规则和算法的自动机.
它是机器.

举个例子,你让电脑和人下围棋,它未必能 ...

问题不是这个

假设,编译器为了优化一段代码开了10M内存来优化,弄出一优化结果
你自己也试试,那10M数据你能同时处理多少呢,能同时考虑几十个数据就不错了

假设x86的N多跳转指令效率不一样,对p3一个快一点,对p4另一个快一点.Intel自家的编译器肯定是知道这些的,你能知道多少呢
intel的编译器号称能够自动发掘出代码中的并行性,能够把上M的代码的并行性都发掘一边,你又能发觉多少并行性呢

所谓编译器,就跟干活的牲口一样,为啥要跟牲口去比谁干的好呢

论坛徽章:
0
56 [报告]
发表于 2008-03-22 18:24 |只看该作者

论坛徽章:
0
57 [报告]
发表于 2008-03-23 00:09 |只看该作者
有句话倒是真的:用汇编有时候写出来的程序比用编译器自己优化的还慢

论坛徽章:
0
58 [报告]
发表于 2008-03-23 00:11 |只看该作者
原帖由 smartlinux 于 2008-3-22 10:36 发表
部分关键代码用汇编来写,以提高执行效率 这是公认的,没有什么可以质疑的。


汇编直接对应机器指令,避免编译器编译后的无效指令。


会的人手工优化一下,无可厚非。不会的,还是算了吧……

论坛徽章:
0
59 [报告]
发表于 2008-03-25 16:00 |只看该作者
如果楼主了解什么是汇编语言就没有这个疑问了.

[ 本帖最后由 abc3w 于 2008-3-25 16:19 编辑 ]

论坛徽章:
0
60 [报告]
发表于 2008-03-26 19:50 |只看该作者
问题都是有各自的上下文的,离开上下文环境去讨论多半没有任何价值,尤其是这类的工程技术问题。

在很多实际的产品中,会经常看到为了效率和简单,使用汇编代码,这很正常。

但是离开具体的项目/产品,且扯到和编译器比谁产生的机器码更优,讨论就没有价值了,而且咱们的层次还没到那个境界。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP