程式优化
外观
在电脑科学中,程式优化、代码优化或软件优化是修改软件系统以使其某些方面运行得更高效或使用更少资源的过程。[1] 一般来说,计算机程序可以被优化以更快速执行,或减少记忆体存储或其他资源的使用,或者降低功耗。
概述
[编辑]虽然“优化”(Optimization)一词源自“最佳”(Optimum)[2],但在实际操作中实现最佳化的系统极为罕见,这通常被称为超优化(Superoptimization)。程式优化通常专注于针对特定的品质指标进行改进,而非让系统在所有方面达到最佳化。这往往导致取舍,提升某一指标可能会以牺牲另一指标为代价。一个常见的例子是空间与时间的权衡(Space-time tradeoff),透过增加记忆体使用量来缩短程式执行时间。相反地,在记忆体受限的情况下,工程师可能会选择较慢的算法以节省空间。几乎没有单一设计能在所有情况下表现出色,因此工程师必须根据应用的实际需求优先考虑最相关的属性。
此外,实现最佳化通常需要付出不成比例的努力,与所获得的效益不符。因此,优化过程通常在达到足够的改进后就会停止,而不会追求完美。幸运的是,在优化过程的早期,通常可以实现显著的改进,这使得优化一般可以在进入收益递减阶段之前停止。
参考
[编辑]- ^ Robert Sedgewick, Algorithms, 1984, p. 84.
- ^ Antoniou, Andreas; Lu, Wu-Sheng. Practical Optimization (PDF) 2nd. Springer. 2021: 1 (英语).