What is "optimizing"
In computer science, a optimizing program or software is the process of modifying a system to make some aspect of it work more efficiently or use less resources. In general, a computer program can be optimized to run faster, or is able to operate with less memory storage or other resources, or consume less powerWikipedia. Other features may include disk access, communication bandwidth, video performance and user interface responsiveness.
Common places in software that are optimized are (all in English):
- Design or algorithm efficiency.
- Source code level. For example Duff device.
- Build phase or optimizer flags, often exchanging build time for run-time efficiency.
- Compilation; choose the best compiler.
- Assembly level. The best Machine for mapping a problem
- Runtime. Examples include virtual machine, parameters and profile-guided optimization.
A common mentioned danger of optimization is the premature optimization. Optimization often has consequences in relation to complexity of the program and maintenance. On the other hand, the most dramatic effect on optimization is design phase via algorithm efficiency, which is the first stage of development leading to a paradox.