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. |