1. A method of ordering program code in a computer memory, the method comprising: selecting an ordering from among a plurality of orderings for a plurality of program code segments using a heuristic algorithm; and ordering the plurality of program code segments in a memory of a computer using the selected ordering.