This category covers a wide range of subjects related to performance, resource usage, and more than a little dogma. Optimising is also known as: tuning, tweaking, and factoring. This subject is related to refactoring in that it also concerns changing structure without changing behaviour. The main difference between optimising and refactoring is the target audience. Where refactoring targets the maintainer, optimising targets the computer. However, it is not a requirement that optimised code must be obscure. This category includes: '''When to optimise''' * OptimizeLater * DesignForPerformance * LazyOptimization * NotYet * RulesOfOptimization * RulesOfOptimizationClub * ProfileBeforeOptimizing * UniformlySlowCode '''How to optimise''' * AvoidThreadsForOptimizations * BetterForLoopConstruct * BranchPruning * BranchRemoval * BufferGraphicCommands * CacheCalculations * CompiledGraphicCommands * DiscardSuperfluousPrecision * DistributionIsOptimization * FactorCache * FactorOptimization * FasterJava * FixedPrecisionInteger * InlineCaching * MethodInlining * PartialEvaluation * PolymorphicInlineCaches * RedoIt * StrengthReduction * TailCallOptimization * TestTypesInsteadOfDispatch * ThrowOneAwayInPractice '''Religious issues''' * PrematureOptimization * RulesOfOptimization * RulesOfOptimizationClub Standard advice about optimization includes NotYet, OptimizeLater and Knuth stated that PrematureOptimization is the root of all evil (which is where the dogma originates). It is assumed that people reading the optimization pages understand this already. Please, if you are contributing to these pages, resist the temptation to say NotYet on every single one! This is a given. The optimization pages talk about the "how" of optimization, not the "why" or "when". NotYet in this context is condescending and pointless. It also smacks of religious intolerance ;) There is a gestatory attempt to describe some OptimizationPattern''''''s along the lines of DesignPatterns - commonly-occurring techniques which apply to many problems of a given class. Click the heading to see all the CategoryOptimization pages. ---- CategoryCategory