A key distinction between analysis of algorithms and computational complexity theory is that the former is devoted to analyzing the amount of resources needed by a particular algorithm to solve a problem, whereas the latter asks a more general question about all possible algorithms that could be used to solve the same problem.
What field of computer science analyzes all possible algorithms in aggregate to determine the resource requirements needed to solve to a given problem?  
computational complexity theory