1. A computer-implemented method comprising: initiating, by a processor, an execution of a software application, the software application comprising a plurality of routines; storing, by the processor, information related to data inputs to the plurality of routines during the execution of the software application; storing, by the processor, resource consumption information for the plurality of routines during the execution of the software application; instrumenting, by the processor, arguments associated with the data inputs; deriving, by the processor, a size of data inputs based on the instrumented arguments; correlating, by the processor, the resource consumption information to the derived size of data inputs by estimating a plurality of functions each describing a relationship between the resource consumption information and the derived size of data inputs of each of the plurality of routines; comparing, by the processor, the correlated resource consumption information for the plurality of routines to a plurality of threshold values corresponding to categories of resource usage; and determining, by the processor, based on the comparison of the correlated resource consumption information and the plurality of threshold values, a subset of the plurality of routines that meet or exceed one or more of the plurality of threshold values, the subset of routines corresponding to routines exhibiting inefficient resource usage.