1. A method of generating a benchmark profile used to predict the performance of a software application including a plurality of subroutines, the method comprising: identifying a plurality of performance characteristics associated with the software application, wherein each performance characteristic specifies a processing activity performed by the software application, and wherein at least one performance characteristic is associated with more than one of the plurality of subroutines; for each of the plurality of performance characteristics, determining a ratio specifying a proportion of the processing activity performed by the software application for the performance characteristic relative to the processing activity of the software application as a whole; for each of the plurality of performance characteristics, identifying at least one synthetic benchmark configured to evaluate the performance of a computer system relative to the performance characteristic; generating the benchmark profile, wherein the benchmark profile stores the ratio determined for each of the plurality of performance characteristics and an indication of each identified synthetic benchmark; executing the synthetic benchmarks, each of the synthetic benchmarks identified in the benchmark profile, on a distributed computer system for a period of time corresponding to the ratio determined for each respective performance characteristic of the plurality of performance characteristics; and determining, from the synthetic benchmarks, a composite score based on the performance of the executed synthetic benchmarks, wherein the composite score predicts the performance of the software application on the distributed computer system and is stored in the benchmark profile.