1. A computer-implemented method of adaptive software execution, comprising: steps to improve performance of a computer system that executes a plurality of software tasks by; receiving, by one or more hardware processors, first data that reflect a first status of a first execution of a software task from the plurality of software tasks; determining, by the one or more hardware processors based on the first data, a first set of configurations for the first execution of the software task, the first set of configurations including a first configuration associated with a first weight and a second configuration associated with a second weight; wherein the first weight and the second weight reflect, respectively, a status of a prior execution of the software task with the first configuration and the second configuration, and wherein the first set of configurations are ranked based on the first weight and the second weight; determining a sequence of executions of the software task with the first configuration and the second configuration based on the first weight and the second weight; performing, by the one or more hardware processors, the first execution of the software task with the first configuration according to the sequence; receiving, by the one or more hardware processors, second data that reflect a second status of the first execution of the software task with the first configuration; determining, by the one or more hardware processors based on the second data, whether to perform a second execution of the software task with the second configuration according to the sequence; and updating the first weight based on the second data.