Dynamic Software Metrics

Last updated: January 19, 2003

In order to perform meaningful experiments in optimizing compilation and run-time 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. We believe it is beneficial to quantify the behavior of programs with a concise and precisely defined set of metrics, in order to make these intuitive notions of program behavior more concrete and subject to experimental validation. We therefore define a set of unambiguous, dynamic, robust and architecture independent metrics that can be used to categorize programs according to their dynamic behavior in five areas: size, data structure, memory use, concurrency, and polymorphism.


Back to Top



Information about the dynamic metrics is available as Sable Technical Report 2002-11.

 > full text: PDF   PostScript

Back to Top

Related Projects

A number of other projects at Sable are related to dynamic metrics, softare understanding or collection of event trace data.


AdaptJ is a toolkit which allows to record and analyze dynamic execution traces for Java programs. It is used to compute the dynamic software metrics that are reported here.

More information is available at:


EVolve is a system for visualizing trace data in a variety of ways.

More information is available at:


STEP is a system for encoding and compressing program traces in a flexible format.

More information is available at:

Back to Top