<P> Beyond asymptotic order of growth, the constant factors matter: an asymptotically slower algorithm may be faster or smaller (because simpler) than an asymptotically faster algorithm when they are both faced with small input, which may be the case that occurs in reality . Often a hybrid algorithm will provide the best performance, due to this tradeoff changing with size . </P> <P> A general technique to improve performance is to avoid work . A good example is the use of a fast path for common cases, improving performance by avoiding unnecessary work . For example, using a simple text layout algorithm for Latin text, only switching to a complex layout algorithm for complex scripts, such as Devanagari . Another important technique is caching, particularly memoization, which avoids redundant computations . Because of the importance of caching, there are often many levels of caching in a system, which can cause problems from memory use, and correctness issues from stale caches . </P> <Ul> <Li> Source code level </Li> </Ul> <Li> Source code level </Li>

By how much is the total time reduced if routine b is improved by 20