Program optimization: Difference between revisions

Content deleted Content added
Tag: Reverted
NotKaylee (talk | contribs)
Undid revision 1065293618 by 207.224.177.48 (talk)
Line 7:
 
==General==
Alth0908moughAlthough the word "optimization" shares the same root as "optimal", it is rare for the process of optimization to produce a truly optimal system. A system can generally be made optimal not in absolute terms, but only with respect to a given quality metric, which may be in contrast with other possible metrics. As a result, the optimized system will typically only be optimal in one application or for one audience. One might reduce the amount of time that a program takes to perform some task at the price of making it consume more memory. In an application where memory space is at a premium, one might deliberately choose a slower [[algorithm]] in order to use less memory. Often there is no "one size fits all" design which works well in all cases, so [[engineer]]s make [[trade-off]]s to optimize the attributes of greatest interest. Additionally, the effort required to make a piece of software completely optimal{{snd}} incapable of any further improvement{{snd}} is almost always more than is reasonable for the benefits that would be accrued; so the process of optimization may be halted before a completely optimal solution has been reached. Fortunately, it is often the case that the greatest improvements come early in the process.
 
Even for a given quality metric (such as execution speed), most methods of optimization only improve the result; they have no pretense of producing optimal output. [[Superoptimization]] is the process of finding truly optimal output.