1. A computer-implemented method of adaptive software execution, comprising: receiving, by one or more hardware processors, first data that reflects a first status of a first execution of a software task; 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 and second configurations, and wherein the first set of configurations are ranked based on the first and second weights; determining a sequence of executions of the software task with the first and second configurations based on the first and second weights; 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 reflects 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 determining the first weight based on the second data.