1. A computer-implemented method executed by one or more processors, the method comprising: receiving, by one or more processors, source code of an application; providing, by the one or more processors, intermediate code based on the source code, the intermediate code comprising at least one instruction for profiling at least one object of the application; providing, by the one or more processors, a statistics file by processing the intermediate code based on a memory profiling library; processing, by the one or more processors, the statistics file based on a plurality of models to provide a list of objects, the list of objects identifying types of memory respective objects should be stored to in a hybrid main memory system; and storing, by the one or more processors, modified source code that is provided based on the source code and the list of objects.