Program Analyses for Understanding the Behavior and Performance of Traditional and Mobile Object-Oriented Software
Dacong Yan · OhioLink ETD Center (Ohio Library and Information Network) · 2014
The computing industry has experienced fast and sustained growth in the complexity of software functionality, structure, and behavior.Increased complexity has led to new challenges in program analyses to understand software behavior, and in particular to uncover performance inefficiencies.Performance inefficiencies can have significant impact on software quality.When an application spends a substantial amount of time performing redundant work, software performance and user experience can deteriorate.Some inefficiencies can use up certain types of resources and lead to program crashes.In general, performance inefficiency is an important and challenging problem for modern software systems.It is also a shared problem for traditional and mobile object-oriented software.Static and dynamic analyses need to keep up with this trend, and this often requires novel technical approaches.One important symptom of performance inefficiencies is run-time bloat: excessive memory usage and work to accomplish simple tasks.Bloat significantly affects scalability and performance, and exposing it requires good diagnostic tools.As the first contribution of this dissertation, we present a novel analysis that profiles the run-time execution to help programmers uncover potential performance problems.The key idea of the proposed approach is to track object references, starting from object creation statements, through assignment statements, and eventually ending at statements that perform useful operations.An abstract view of reference propagation