不是高级语言比汇编快,是我脑子没有多位高手的智慧结晶强。
很多人用的编译器,一定是多位高手的智慧结晶。
对普通程序员来说,写高级语言相当于一种「退让」,退让的只写业务代码,至于 CPU 层次的细节优化外包给「多位高手」去完成。
为什么?
CPU 层次的细节容易被高度抽象,优化让给「凝结多位高手灵魂」的机器做就好;
业务代码相对比较难抽象,需要人一步一脚印的打磨。
题主说:
那些怀旧电子产品的频道。8 bit guy 。看人家演示编程。就是很老的8位家用电脑,执行汇编都很快。
我的单片机技术,也是这种传统家电厂老师父带入门的,所以我略懂这种人。
但这个时代的硬件没有那么拮据了。需要把脑子花在这种地方的场合,往往都是量极端大、利极端薄的硬件产品。现在是少量多样、快速迭代的时代,这种功夫需求不多了。
如果是为了降低元器件成本,还不如看我另外一篇回答:
我谈的技术都在电路、算法、协议层次,可以跨平台应用。死嗑汇编,会降低你的平台选择性,增加脆弱性。
现在除了汇编最接近底层的编程语言就是C了。比较强的C程序员,敲出C代码就知道编译后应该是什么样子,各种优化更是门清。
之前有过调查,9x%的C程序员手工写出的汇编,比他们写出C代码然后丢给编译器自动优化得到的汇编代码要慢得多。
有前提条件吗?
现在很少会有人用汇编从头实现一个完整的程序了吧…… 顶多是个别场合用汇编在编译器的基础上再手动优化一下,这样还是有可能能做到汇编更快的。
从头用汇编的话,别说快不快了,先把需要的功能实现出来再说吧……
高级语言不一定比汇编快。但是,对会提出“为什么还有很多人说高级语言比汇编快?”这类问题的人来说,高级语言就是比汇编快。
所以,如果你对“高级语言和汇编哪个快”这样的问题没有疑问,那么自然也无需讨论这个问题。而只要你对此有疑问,那么答案就是“高级语言比汇编快”。