1. An apparatus comprising: a processor; and a memory storing computer program code, the memory and computer program code configured to, with the processor cause the apparatus at least to: receive a reference class file for each of a plurality of classes and a plurality of modified class files for each of the plurality of classes, wherein the reference class file is a compiled class file, and the plurality of modified class files are compiled class files formed by modifying the compiled reference class file using a plurality of class file output tools, each of the plurality of class file output tools receiving as input the reference class file; select a selected file, among the reference class file and the plurality of modified class files for each corresponding one of the classes based at least in part on profiling data marking the reference class file, such that: for each class file associated with profiling data indicating that the corresponding class is not performance critical, one of the plurality of modified class files and the reference class file is selected based at least in part on a size of each of the plurality of modified class files and the reference class file, and for each class file associated with profiling data indicating that the corresponding class is performance critical, one of the plurality of modified class files and the reference class file is selected based at least in part according to pre-defined performance criteria disregarding size; and form a class set comprising the selected file for each corresponding one of the classes.