1. A method comprising: executing a computing device for a predetermined time interval and recording data related to the execution of the computing device into a log; analyzing the data recorded into the log to identify blocking relationships between processes executing on the computing device, wherein blocking relationships comprise lock contention information related to a first process being blocked by a second process due to the first process being unable to acquire a lock on an object because the second process is holding the lock on the object; and plotting the data into a graph data structure comprising: a plurality of nodes, each node representing one of the processes executing on the computing device; and links between the nodes that indicate the blocking relationships between the processes; setting a predetermined initial optimization priority score for each node; iteratively updating the optimization priority score of each node based on the optimization priority scores of the nodes that the node blocks; and identifying a process to be optimized based on the optimization priority score of the node associated with the process.