1. One or more computer memories containing executable instructions that, when implemented, perform a method comprising: determining a first priority value of a first computer application program based on a plurality of parameter values of the first computer application program, each parameter value of the first computer application program representing a different characteristic of the first computer application program, the different characteristics of the first computer application program including at least a first characteristic assigned by a developer of the first computer application program, and at least a second characteristic determined via monitoring execution of the first computer application program; determining a second priority value of a second computer application program based on a plurality of parameter values of the second computer application program, each parameter value of the second computer application program representing a different characteristic of the second computer application program, the different characteristics of the second computer application program including at least a third characteristic assigned by a developer of the second computer application program, and at least a fourth characteristic determined via monitoring execution of the second computer application program; reducing the first priority value or increasing the second priority value when a launch time of the first computer application program is a longer amount of time than a launch time of the second computer application program; comparing the first priority value to the second priority value; and reclaiming system resources associated with the second computer application program based on a determination that the first priority value is smaller than the second priority value.