购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 关于编译器质量的误区

在个人计算机革命的早期,高性能的软件都是用汇编语言编写的。随着时间的推移,高级语言的编译器得到优化,其作者于是声称:编译器生成的代码可拥有相当于手工优化汇编语言代码10%到50%的性能。这些迹象表明,高级语言在PC软件开发中的地位有所上升,似乎为汇编语言敲响了丧钟。许多程序员开始引用这样的数字—“我的编译器能达到汇编语言代码90%的速度,所以无须使用汇编语言编程”来为自己辩解。问题是他们从不为其应用程序编写手工优化的汇编语言版本来核实这些说法。他们对编译器性能的假设往往是经不起推敲的。更糟糕的是,尽管诸如C和C++编程语言的编译器能够产生非常棒的输出代码,但程序员们还是移情别恋于更高级的编程语言,例如Java、Python和Swift。这些更高级的编程语言要么是解释(或半解释)型语言,要么原本并不成熟,其代码生成器会输出糟糕的代码。

编译器优化的作者并未说谎。在适当条件下,优化型编译器产生的代码几乎足以与手工优化的汇编语言代码相媲美。然而,要得到这么高的性能,高级语言代码必须按适当的方式编写。要做到这一点,就要求对计算机操作和执行软件的原理了如指掌。 vfQLhzdYYywFHmB60mkljeuZUqgXzTTIf3VutjzzdqM0Acmto7t64gIBu3izaIhb

点击中间区域
呼出菜单
上一章
目录
下一章
×