Background (cont.) Placing related functions together reduces working set size. Performance benefits: reduces memory consumption improves load times improves cache performance Typically "code coverage" is relatively low for big programs: gcc compiling haifa-sched.c (8764 lines): 976 / 3004 functions were called 798596 / 1790348 (44%) of the code was executed Functions tend to be spread out