首页
社区
课程
招聘
[讨论]用汇编写代码就是优化?
发表于: 2007-12-26 23:21 12566

[讨论]用汇编写代码就是优化?

2007-12-26 23:21
12566

我认为,现代的native compile(原生代码)的编译器,编译生成的汇编代码要比大多数人直接用asm写的代码高效的多,是不是这样?欢迎讨论,并说明理由,谢谢!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (26)
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
2
比大多数人高效。同意
但是还是有火星人
确定效率的主要是算法。opcode级的优化仅在实时处理领域需要。
2007-12-26 23:41
0
雪    币: 314
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这要看写程序人的水平了,自己程序写的差,再优化也是那样?写的好的优化才有效果。有些人知道怎么写效率高,或者就知道这样写,编译器编译的能有优化。汇编水平高,并且研究过反汇编的,也写的能跟编译器编译出来的不相上下的代码,看个人功底了。大牛级写的程序往往考虑的比较高,象我这样的菜鸟也就考虑能写出来就行了
2007-12-26 23:47
0
雪    币: 1946
活跃值: (263)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
4
记得有一本书上说过,大意是指令上的优化是微不足道的,阻止性能的瓶颈在算法上,应该先从算法上进行优化。不一定正确,看各自的评判标准了。
2007-12-27 00:10
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
5
其实大多数asm coder追求的是变态的size,速度反而不是那么重要

因为现在编译器用到好多很高级的优化技巧,是一些战斗等级非常高的asm coder的结晶,所以编译出来的东西当然比初级asm coder写的速度快甚至体积小

经过深思的想法+牛B的coding技巧可以写出优于机器很多倍的代码,毕竟高级语言编译出来的东西不可避免地会有一些杂质
2007-12-27 00:33
0
雪    币: 124
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
期待战斗等级非常高的asm coder forgot的结晶
2007-12-27 04:51
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
比大多数人。我想应该是正确的。。。比高手肯定是要差的。。不过直接用ASM的高手似乎不少。。
所以这句话颇难判断。。。

简单的说。。这就是一个通用软件和专用软件在专用领域上的比拼。。您认为呢?

代码优化本身似乎是个课题。。与汇编是2个概念。。。

简单的说。汇编是一种语言。。而代码优化牵扯的更多。。。。代码优化完全可以不用汇编。。
汇编的目的也未必是代码优化

OVER。
2007-12-27 09:37
0
雪    币: 205
活跃值: (171)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
亲身经历过:
想提高一段程序的速度,用汇编来写了一下,结果速度不升反降,大大的打击了我学汇编的信心
后来,改用c代码的,用intel 10.0的编译器,结果速度提高了1.5倍,甚感欣慰

所以个人觉得,如果不是非常有把握,还是不要用汇编来优化代码,费力不讨好
  最好从算法角度,编译器的选择方面下手,这样可能效果要好点
一家之言
2007-12-27 16:22
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
呵呵 真的很期待啊
2007-12-27 17:31
0
雪    币: 251
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我认为用汇编来主要来写和平台无关的"算法","子程序"比较好,这样和其它高级语言结合起来会起到事半功倍的作用.
2007-12-27 18:54
0
雪    币: 217
活跃值: (15)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
  楼主高人现身啊
现在除了服务器上的程序用优化,单机的机器,都双核2g内存,一般程序只要不是特别的差的算法都够跑,而且程序写的不好,都不用加密,别人看起来就费劲
2007-12-27 21:15
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
机器是死的,人是活的
2007-12-27 22:00
0
雪    币: 228
活跃值: (119)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
编译器的后端也是人写的,不过写后端的人的汇编水平才是吃专业饭的,他们对新指令系统及架构的了解比普通汇编书本上所介绍的要新的多,也要有效的多。所以新编译器的汇编代码质量会高过手写汇编。
2008-1-17 09:19
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
14
其实就是你NB还是编译器作者NB的问题
2008-1-17 09:48
0
雪    币: 2290
活跃值: (20)
能力值: ( LV9,RANK:150 )
在线值:
发帖
回帖
粉丝
15
一般现在就是先用高级语言写程序,这样比较有效率。宁花机器十分,不花程序员一秒嘛:)

如果认为程序的速度有问题,再用VTune之类的性能分析工具找出执行最频繁的代码段,分析之,如果可能就用汇编“帮助”编译器优化,呵呵。
2008-1-17 10:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
什么东东都有相对性的,看大家如何去做咯 .......
2008-1-17 10:55
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
17
学习....
2008-1-17 14:23
0
雪    币: 424
活跃值: (1974)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
这个战斗级别高……
2008-1-18 22:51
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
一个人写出了绝世优化算法,之后又加了个绝世VM,最终成品是绝世XX。
2008-1-19 00:22
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
20
优化需要优化的,哈哈
2008-1-19 00:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
顶我楼上的……

俗话说的好废话就是真理,按个人需要来吧……
2008-1-19 13:31
0
雪    币: 1126
活跃值: (156)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
22
编译器作者是职业优化者,他们把CPU指令优化都读了很多遍;一般人根本赶不上的。比如指令并行上等等。而且,很多汇编编码的人并不是高手,还是以前的一些旧料,根本没有看过CPU指令参考手册中的指令优化方面的东西。建议除了极端情况,不要用汇编的好。
2008-1-20 19:16
0
雪    币: 203
活跃值: (279)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
可以用SSE/MMX进行优化,但是要看程序是否适合用这个优化.
2008-1-21 13:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
很多东西编译器会自动优化的,而且比一般人做的都要好。
我觉得在算法方面多下功夫,编写code的时候尽量协助编译器进行优化就好了。
像C/C++这样接近底层的语言,做code的时候就可以进行优化了。
2008-1-21 15:02
0
雪    币: 215
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
25
有些比较冷门的处理器,或者嵌入式处理器汇编用的多
2008-1-21 17:48
0
游客
登录 | 注册 方可回帖
返回
//