1. A system for predicting performance of a multi-threaded software application in the presence of resource bottlenecks, the system comprising: one or more processors; and a memory storing processor-executable instructions comprising instructions that, when executed by the one or more processors, configure the one or more processors to: represent one or more queuing networks corresponding to resources, the resources being employed to run the multi-threaded software application; detect, based on the one or more queuing networks, a concurrency level associated with encountering of a first resource bottleneck, wherein the concurrency level is detected by checking a number of threads accessing the multi-threaded software application; determine, based on the concurrency level, performance metrics associated with the multi-threaded application; and predict the performance of the multi-threaded application based on the performance metrics.