' N P- L* o4 \7 c7 [ W! ^7 s这句话要看年代,现在当然是这样,可是在我刚工作的时候,那是八十年代末期,合格专业程序员做到这点是必须的。& Q4 e0 \/ p0 u1 u( p8 d
5 r$ g' ?! t5 O. Z/ t为啥这么讲,因为那时候为了性能,汇编是专业程序员最主要的编程语言,后来随着CPU处理能力的提高,越来越不需要而已。 & g( Q6 V7 y% Q3 U - n% s J. n! @+ U我当年开始工作的时候,开始是纯汇编,然后是C嵌套行间汇编,最后是纯C,其原因就在于CPU性能上的进步。6 h# I; I/ A: v. A" _7 l$ z5 u1 u
% U7 h. u. Z$ u N. ]C编译的优化本身并没有什么神奇的地方,而且程序产生代码的进栈出栈开销是标准化的,而程序员的手写汇编却可以根据情况做些简省,这样性能就肯定比编译器产生的代码要强了。 # X- z/ m3 p' M) g4 N3 ]# j+ b' W A, s6 x4 T2 ^ N& W0 [! I$ \+ ]
汇编语言衰落的根本原因是它的开发效率太低了,性能上的优势与经济上的成本相比,在绝大多数市场段上没有生存空间了,如此而已。但是单就性能而言,当年的专业程序员手写汇编程序性能超过编译器优化代码是毋庸置疑的。