1. A method for managing a plurality of resources used by a plurality of applications that are located in system memory, the method comprising: monitoring usage statistics for the plurality of applications running on a hardware platform; determining that usage statistics for a particular application of the plurality of applications are outside of a usage threshold profile; creating an on-demand profile that specifies a set of resources used by the particular application and a set of destination inputs mapped to the particular application; mapping the destination inputs to a management module; releasing, based upon the on-demand profile, at least some of the resources of the set of resources used by the particular application; detecting, while execution of the particular application is suspended and using the management module, an access to an input of the set of destination inputs; allocating, in response to the detecting and to the particular application, the at least some of the resources of the set of resources used by the particular application; and removing, in response to the detecting, the particular application from suspension.