Patent ID: 8271651

Claim:
A method comprising: receiving, by an application executed by an operating system, a plurality of operating parameters having values describing a plurality of different types of resources of a client device; determining a value representing an estimate of current load on the client device based at least in part on a combination of the plurality of operating parameter values describing the plurality of different types of resources of the client device; assigning the value representing the estimate of current load on the client device to a usage variable; and correlating by the application a level of throttling of the application with the usage variable, the correlating comprising: examining a representation of a mapping of estimates of load on the client device to levels of throttling, wherein each tuple in the mapping maps a particular estimate of load on the client device to a particular level of throttling; identifying a tuple of the mapping for which the particular value of the estimate of load on the client device matches the estimate of current load on the client device; and the application modifying its own execution to throttle its usage to the level of throttling specified by the identified tuple.