Download presentation
Presentation is loading. Please wait.
Published bySpencer Dearth Modified over 9 years ago
1
Generating Run-Time Progress Reports for a Points-to Analysis in Eclipse Jason Sawin, Mariana Sharp, Atanas Rountev Ohio State University
2
Jason Sawin EXT06 2 Production Quality Extensions End goal of static analysis research is to improve software quality and programmer productivity Eclipse provides an excellent vehicle in which to build and distribute static analysis tools Provides many low-level facilities required by static analysis tools Very popular IDE Tool designers must interface with Eclipse in a meaningful manner
3
Jason Sawin EXT06 3 Progress Indicators Important UI components Performs several valuable tasks Immediate user feedback Indication of progress made Estimate of amount of time need to complete the task Often it is difficult to create an accurate and meaningful progress indicator for static analysis
4
Jason Sawin EXT06 4 Soot and Points-to Analysis Takes an entire program as input and builds points-to sets that represent potential run- time points-to relationships Utilizes a worklist based algorithm Methods are discovered on-the-fly Initial treatment of a method requires processing each statement it contains once
5
Jason Sawin EXT06 5 What is the Challenge? Measured progress monitors in Eclipse rely on a priori knowledge of the total amount of work the task is going to perform void beginTask(String taskName, int totalWork) How much work will a points-to analysis perform? Reachable methods are discovered at run time Must rely on heuristics to estimate totalWork
6
Jason Sawin EXT06 6 Two Styles of Heuristics Fledgling analysis The first time the analysis is run on an application Repeated analysis Repeated executions of the analysis on slightly different version of the application Can utilize information stored from the pervious run of the analysis Eclipse workspaces are well suited for this style
7
Jason Sawin EXT06 7 Heuristics: Fledgling Analysis Least effort estimate Hardcoded estimate of 5667 reachable methods Indicates progress for every method processed Number of user-defined methods Only indicates progress when user-defined methods are processed Total derived from user methods totalWork = (# user-defined methods) /.0981
8
Jason Sawin EXT06 8 Heuristics: Repeated Analysis Total number of reachable methods Indicate progress for every method processed totalWork is the number of reachable methods from an earlier version Methods Weighted by Number of Statements totalWork is the total number of statements processed in an earlier version Each method reports its number of statements as progress
9
Jason Sawin EXT06 9 Evaluating Estimation Heuristics Accuracy Measure how far off each estimation point is from perfect Perfect: ratio of time equals progress reported Smoothness Measure how steadily the heuristic reports progress
10
Jason Sawin EXT06 10 Evaluating Progress Estimation Techniques Accuracy: Smoothness:
11
Jason Sawin EXT06 11 Accuracy Results
12
Jason Sawin EXT06 12 Smoothness Results
13
Jason Sawin EXT06 13 Conclusions and Future Work Building progress indicators that are both meaningful and accurate can be a challenging task This work present metrics that can be used to evaluate progress estimation techniques Future Goals Investigate more advanced techniques for the fledgling analysis
14
Jason Sawin EXT06 14QUESTIONS
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.