Rapid performance prediction for library components
Paper in proceedings, 2004
Component-based programming is a methodology for designing software systems as assemblages of components with a low degree of coherence and a high degree of orthogonality. Decoupling and orthogonality, however, require coupling and assembling on the side of the component's client. This paper addresses performance problems that occur in the composition specifically of library components. We discuss the design and implementation of a composer, which assembles library components based on a classification of their declarative performance descriptions. Employing an off-the-shelf decision-tree procedure for selecting, and the C++ technique of traits for propagating the desired behavior throughout the whole library, our system allows for rapid performance predictions. It is applied to FFTL, an "STL-like" C++ library for the Fast Fourier Transform.