@MastersThesis{dufourMetrics2004,
  author   = {Bruno Dufour},
  title    = {Objective Quantification of Program Behaviour Using Dynamic Metrics},
  school   = {McGill University},
  year     = {2004},
  address  = {Montr{\'e}al, Qu{\'e}bec, Canada},
  url      = {http://www.sable.mcgill.ca/metrics/},
  abstract = {
    In order to perform meaningful experiments in optimizing compilation and
    runtime system design, researchers usually rely on a suite of benchmark
    programs of interest to the optimization technique under consideration.
    Programs are described as numeric, memory-intensive,
    concurrent, or object-oriented, based on a qualitative
    appraisal, in some cases with little justification.

    In order to make these intuitive notions of program behaviour more concrete
    and subject to experimental validation, this thesis introduces a
    methodology to objectively quantify key aspects of program behaviour using
    dynamic metrics.  A set of unambiguous, dynamic, robust and
    architecture-independent dynamic metrics is defined, and can be used to
    categorize programs according to their dynamic behaviour in five areas:
    size, data structures, memory use, polymorphism and concurrency. Each
    metric is also empirically validated.

    A general-purpose, easily extensible dynamic analysis framework has been
    designed and implemented to gather empirical metric results. This framework
    consists of three major components. The profiling agent collects execution
    data from a Java virtual machine.  The trace analyzer performs computations
    on this data, and the web interface presents the result of the analysis in
    a convenient and user-friendly way.

    The utility of the approach as well as selected specific metrics is
    validated by examining metric data for a number of commonly used
    benchmarks.  Case studies of program transformations and the consequent
    effects on metric data are also considered. Results show that the
    information that can be obtained from the metrics not only corresponds well
    with the intuitive notions of program behaviour, but can also reveal
    interesting behaviour that would have otherwise required lengthy
    investigations using more traditional techniques.
  },
}
