为什么经常听人说编译器比你聪明？
编译器有几个优势是人不具备的： 定制版的编译器知道更多硬件细节，这些细节有可能是商业机密，普通开发者无法知晓，自然无法投其所好写出更高效的代码。 编译器的开发者普遍比应用开发者更聪明、更资深，所以才给了你编译器聪明的感觉。 我大学学编译原理，做过一个简单的编译器，可以编译c语言的一个子集。 效果怎么样呢？在老师给的测试用例上，比gcc慢几倍，这已经是我们整个年级的最好成绩了。 后来我的这个作品还被学弟们拿去琢磨，当个参考。 就算你让我今天再做一遍，我也没有信心会做得更好，因为我没这方面的经验。 编译器由于是个程序，它可以比人做更多尝试，简单说就是编译器看得广看得快。 一个项目动辄几万行代码，你能看出两个文件中函数和变量的关系？ 如果对代码有更极致的要求，甚至编译系统会把代码真的跑一段时间，根据火山图指导编译的策略，这个人怎么比？  对大多数场景来说，编译器优化已经足够了，对特殊场景来说，才需要人工极致优化。 有一次更新一个硬件的固件，好死不死大小超了几百字节，死活压不下去。 一个资深的同事，手写汇编，不仅压缩了大小，还提高了效率。 当时我还研究过他的代码，发现他利用了某个指令的副作用，从而省去了大块的初始化，惊为天人。 这个副作用是写在汇编手册里的，所以不用担心不兼容，只有他想到这么用。  他的名字叫xxx威，大家从此之后都喊他伟哥。 为什么叫伟哥呢？因为伟和威读音相似，伟哥这个药本来是治疗心脏病的，结果它的副作用却被人拿来爽，正和他的神操作类似，算是个双冠吧。