In
computer science, efficiency is used to describe several desirable properties of an
algorithm or other construct, besides clean design, functionality, etc. Efficiency is generally contained in two properties: speed (the time it takes for an operation to complete), and space (the memory or non-volatile storage used up by the construct).
Optimization is the process of making code as efficient as possible, sometimes focusing on space at the cost of speed, or vice versa.
See more at Wikipedia.org...