优化编译器
编译器在编译代码时对代码进行等效转换以换取一些特性的提升或降低的机制 / 维基百科,自由的 encyclopedia
在电脑领域中,优化编译器是一种试图将程序的某种属性最大化或者最小化的编译器。一般而言,受影响的属性包括了电脑程序的大小、执行时间以及内存占用,不同的优化编译器会根据各自的着重点,对程序做出一定变换或者在不影响运行结果的情况下修改程序的结构,使得这些属性更贴近理论上的最优值。
优化编译器的核心是程序优化变换(optimizing transformations),该类算法的目的是将原有程序,替换成资源消耗更低、运行时间更短,但语义上与原有程序等价的新程序。这些算法有一部分是NP完全的,甚至是不可判定的。与此同时,一些算法的优化能力也有可能受到编译时长限制(如即时编译)、程序开发机器的性能等问题所影响,因此编译器的开发者在设计优化算法时,需要考虑到这些因素并加以权衡。也是由于这些因素,鲜有程序在优化以后是真正做到最优的。[1]
足够智慧的优化编译器,因为能够自动化各种优化技巧的应用,对于大幅提升软件开发效率有着莫大的重要性。