A method and apparatus for finding bottlenecks in software systems and
other systems, given profiles that measure costs of the system. A simple
profile interface, which is independent of the system and the method for
measuring costs, provides operations for summarizing measurements in any
profile that associates costs with paths. Then, an analyst uses one or
more search tools which use the operations provided by the interface to
generate summaries, where costly summaries represent bottlenecks. The set
of operations provided by the interface not only support constructing
summaries of cost measurements, but also support computing the overlap of
summaries.