Profiler tools selection for curricular support

  • Authors:
  • Ruth Hackney;Leigh Momii;Catrin Riggs;Adair Dingle

  • Affiliations:
  • Seattle University, Seattle, WA;Seattle University, Seattle, WA;Seattle University, Seattle, WA;Seattle University, Seattle, WA

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Profiling software is the process of analyzing the structure and performance of software. Profiling can be used to detect patterns of use, to verify performance, to optimize code, to identify data corruption and to expose memory leaks or excessive resource demands. Components of a large system can be profiled individually or together. Profiling is accomplished through software tools.Profiling can be used effectively to reinforce understanding of conceptual processes, to strengthen programming skills and awareness of design issues. Essentially, such tool usage exposes hidden details. For example, analysis of memory usage highlights different types of memory management. Tracing function calls illustrates the impact of different portions of a software system. Students thus learn to think critically in a practical setting, fostering the ability to evaluate claims and counter assumptions (such as 'Java has no memory leaks').In this paper, we summarize our attempts to select, evaluate, and compare profiling tools, with the computer science classroom as the targeted use of such tools. First, we derive desired characteristics for profiling tools. Then we determine availability, subject to constraints of academia. Finally, we evaluate implementation and usage details.