dynamic metrics for java
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 behaviour of programs with a concise and precisely defined set of metrics, in order to make these intuitive notions of program behaviour more concrete and subject to experimental validation. We therefore define and measure a set of unambiguous, dynamic, robust and architecture-independent metrics that can be used to categorize programs according to their dynamic behaviour in five areas: size, data structure, memory use, concurrency, and polymorphism. A framework computing some of these metrics for Java programs is presented along with specific results demonstrating how to use metric data to understand a program's behaviour, and both guide and evaluate compiler optimizations.
dynamic metrics dynamic metrication java order experience optimizing compiler optimization system design research benchmark program concurrency experimentation measurement robust use size data structures data memorialized polymorphic computation evaluation profiling  framework  program analysis timing - compiler optimization architecture execution traces software metrics