Penguin
Blame: Optimisation
EditPageHistoryDiffInfoLikePages
Annotated edit history of Optimisation version 5, including all changes. View license author blame.
Rev Author # Line
4 AristotlePagaltzis 1 The process of improving SourceCode and/or its resulting MachineCode with regard to a certain aspect. Such aspects include:
1 StuartYeates 2
4 AristotlePagaltzis 3 __Speed__::
4 Does what it says: the program runs faster.
5 This is the aspect commonly referred to when the term [Optimisation] is used.
6 __Object code size__::
7 Reduces the size of large applications (such as browsers, office suites, and the like) or frequently downloaded code (such as scripts and applets on WebSite~s).
8 As a side effect, [Cache] locality of the code improves, so performance will often benefit as well.
9 This is the second most commonly referred to aspect of [Optimisation].
10 __Compilation time__::
11 Improves the perceived responsiveness of code compiled dynamically in reaction to user requests.
5 StuartYeates 12 __Parallelisation__::
4 AristotlePagaltzis 13 Leverages the resources of [SMP] systems better, because MultiThreaded tasks can take advantage of multiple [CPU]s at once.
1 StuartYeates 14
4 AristotlePagaltzis 15 In practice, you always need a balance among these.
1 StuartYeates 16
4 AristotlePagaltzis 17 ----
18
5 StuartYeates 19 There are other aspects which relate to the development-time rather than the run-time which can also be thought of as optimisations:
4 AristotlePagaltzis 20
5 StuartYeates 21 __Flexibility__::
22 Reduces the effort and thus cost of designing and implementing new features. See also [Refactoring].
23 __Portability__::
24 Allows deploying the SourceCode on more than one platforms.
25 This often requires avoiding other, platform-specific [Optimisation] techniques.
4 AristotlePagaltzis 26
5 StuartYeates 27 Again, balance is necessary.