Tech Report CS-89-01

Annotating Software With Arbitrary Performance Characteristics

Scott Meyers

January 1989


Characterizations of software performance are usually restricted to discussions of the software's size and speed, but these two criteria fail to take into account other important aspects of software performance, such as reliability, portability, and robustness. In this paper, we present a methodology for annotating software with arbitrary performance characteristics, and we describe how such annotations might be used as the basis for a system that could automatically select optimal implementations for software abstractions. The selection of optimal implementations requires that fundamentally incomparable criteria (such as speed and portability) be unified, and we develop a convention for achieving this unification. We also discuss how the idea of using arbitrary performance characterizations can be applied to other domains, including hardware design and general-purpose planning.

(complete text in pdf)