Trustworthy Systems

Architecture optimisation


Nicholas FitzRoy-Dale

School of Computer Science and Engineering



This dissertation describes architecture optimisation, a novel optimisation tech- nique.Architecture optimisation improves the performance of software components or applications by modifying the way in which they communicate with other components, or with the operating system. This is a significantly different focus to traditional com- piler optimisations, which typically operate on a single application and do not attempt to change the way it interacts with the rest of the system. To perform an architecture optimisation, the author of a programming interface writes a small, domain-specific opti- misation specification which describes both the conditions necessary for the architecture optimisation to be valid, and the way in which such an optimisation should be perfor- mend. This specification is then used as input to an architecture optimiser, which applies the optimisation to a particular application. Architecture optimisation does not require application source code, effectively decoupling optimisation from compilation.

To demonstrate its usefulness, an implementation of architecture optimisation, named Currawong, is described. Currawong is a complete architecture optimiser, supporting two languages (Java and C) and two completely different software platforms (the An- droid smartphone operating system, and CAmkES, a research-focused component-based system). Currawong is applied to several optimisable applications on both platforms, and achieves significant performance improvements.

The two major contributions of the work are a concise specification language for archi- tecture optimisations, and early proof that the technique is useful for real-world applica- tions, in the form of benchmark results demonstrating significant (up to 2x) performance improvements.

BibTeX Entry

    address          = {Sydney, Australia},
    author           = {Nicholas FitzRoy-Dale},
    month            = mar,
    note             = {Available from publications page at \url{}},
    paperurl         = {},
    school           = {UNSW},
    title            = {Architecture Optimisation},
    year             = {2011}