1. A method performed by a computing device, comprising: obtaining profile data from execution of a binary code of an application on the computing device, the profile data including multiple density values indicating a density of multiple functions in the binary code, wherein the density of a first function of the functions is computed based on a frequency of execution of the first function and the size of the first function, wherein the frequency of execution is determined based on at least a percentage of runtime of the application consumed by the first function; providing the density values to a linker; modifying, by the linker, the binary code based on the density of the functions to generate a modified binary code, the modifying rearranging functions in decreasing order of density; and loading, by the linker, the modified binary code to a memory of the computing device for execution, wherein loading the modified binary code includes clustering functions with density above a specified threshold at a lower address range of the memory.