1. A method for ranking software codes, comprising: tracking, by a computing device, invocations of software codes by invoking multiple markers to mark the software codes and generate marking records; rebuilding, by the computing device, a call stack having a stack data structure, wherein the call stack is rebuilt based on the marking records; organizing, by the computing device, the software codes based on the call stack into a calling dependency map; and ranking, by the computing device, the software codes based on the calling dependency map, wherein the ranking ranks software codes against one another and redistributes rank scores associated with the software codes in the calling dependency map to other dependent software codes.