Software optimization: Difference between revisions
Appearance
Content deleted Content added
No edit summary |
mNo edit summary |
||
Line 3: | Line 3: | ||
* profiling to find critical parts of the software (and then optimizing those) |
* profiling to find critical parts of the software (and then optimizing those) |
||
* using a better [[algorithm]] or [[data structure]] |
* using a better [[algorithm]] or [[data structure]] |
||
* rewriting code in a lower-level language ([[C programming language|C]] or assembly language are common choices) |
* rewriting code in a lower-level language ([[C programming language|C]] or [[assembly language]] are common choices) |
||
* memoization or caching |
* memoization or caching |
||
* packed bit-fields |
* packed bit-fields |
Revision as of 19:59, 25 October 2001
Optimization of software is making it use less time or space to do the same thing. It's a very large topic and deserves a very large article, which I don't have time to write at present; some large and important aspects of optimization follow:
- profiling to find critical parts of the software (and then optimizing those)
- using a better algorithm or data structure
- rewriting code in a lower-level language (C or assembly language are common choices)
- memoization or caching
- packed bit-fields
Some more specific tricks follow:
- loop unrolling
- loop combining
- inlining of procedures