Presentation conversion is often been identified as "the performance problem of the 90's" in text books on high-speed networking (e.g.( Partridge, 1993), (Peterson & Davie, 1996)). The performance of automatically generated presentation conversion code often prevents applications to take advantage of the performance of high-speed networks. For example, we found that due to presentation conversion code, the throughput of a 155 Mbit/s ATM network can be reduced to 3.1 Mbit/s on the application level, corresponding to a loss in performance by a factor of fifty.
The performance of presentation conversion code can be considerably improved by increasing the size of the code, using techniques such as compilation and inlining. While stub compilers today implement these optimization techniques, their use often leads to code sizes that are unacceptable for many applications in practice.
Further analysis reveals that the code size could be largely reduced if these optimizations where only applied to the parts of the presentation conversion code that are used most often. In other words, rather than applying the same optimization technique (compilation or inlining) to all or the presentation conversion code, it should only be applied to the code parts where it is most beneficial.
This paper shows how a stub compiler can automatically decide which parts of the code are worth optimizing. It is based on three main contributions: