• DocumentCode
    2166123
  • Title

    Results from a large-scale study of performance optimization techniques for source code analyses based on graph reachability algorithms

  • Author

    Binkley, David ; Harman, Mark

  • Author_Institution
    Loyola Coll., Baltimore, MD, USA
  • fYear
    2003
  • fDate
    26-27 Sept. 2003
  • Firstpage
    203
  • Lastpage
    212
  • Abstract
    Internally, many source code analysis tools make use of graphs. For example, one of the oldest and most widely used internal graphs is the control-flow graph developed for use within a compiler. Work on compilation has also led to the development of the call graph, the procedure dependence graph (PDG), and the static-single assignment (SSA) graph. Compilers are not the only source-code analysis tools to use internal graphs. A variety of software engineering tools incorporate a variety of different graphs. A study of techniques that improve graph-based program analysis is presented. Several different techniques are considered, including forming strongly-connected components, topological sorting, and removing transitive edges. Graph reachability, a pervasive graph analysis operation, is used as a representative graph analysis operation in the study. Data collected from a test bed of just over 1000000 lines of code is presented. This data illustrates the impact on computation time of the improvement techniques. Overall, the combination of all techniques produces a 71% reduction in run-time (and 64% reduction in memory usage). In other words, they increase the size of the problem that can be effectively handled by factor of over three times.
  • Keywords
    data structures; graph theory; program diagnostics; reachability analysis; software performance evaluation; SSA graph; call graph; control flow graph; graph based program analysis; graph reachability algorithms; performance optimization; procedure dependence graph; source code analysis; static single assignment graph; strongly connected components; topological sorting; transitive edge removing; Algorithm design and analysis; Educational institutions; Large-scale systems; Optimization; Performance analysis; Runtime; Software engineering; Sorting; Testing; Tree graphs;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Source Code Analysis and Manipulation, 2003. Proceedings. Third IEEE International Workshop on
  • Print_ISBN
    0-7695-2005-7
  • Type

    conf

  • DOI
    10.1109/SCAM.2003.1238046
  • Filename
    1238046