1. A method of compiling a software application comprising a plurality of functions, comprising: identifying at least one of the plurality of functions as a targeted function having a significant contribution to performance of the software application by determining a time to execute at least one of the plurality of functions relative to a total execution time of the software application is greater than a threshold value, and classifying the plurality of functions with execution profiling information in addition to or in place of use of a time to execute, wherein the profiling information includes one or more measurements of the functions; generating a code version of the targeted function with a first of a plurality of machine models, the machine models corresponding respectively to different target utilizations for a target architecture and the first of the plurality of machine models corresponding to a greatest of the different target utilizations; and matching the generated code version of the targeted function with a first application thread of the target architecture, wherein the generating the code version of the targeted function with the first of the plurality of machine models comprises generating respective code versions of the targeted function with each of the plurality of machine models.