programming language optimizations for modular router configurations
Networking systems such as Ensemble, the x -kernel, Scout, and Click achieve flexibility by building routers and other packet processors from modular components. Unfortunately, component designs are often slower than purpose-built code, and routers in particular have stringent efficiency requirements. This paper addresses the efficiency problems of one component-based router, Click, through optimization tools inspired in part by compiler optimization passes. This pragmatic approach can result in significant performance improvements; for example, the combination of three optimizations reduces the amount of CPU time Click requires to process a packet in a simple IP router by 34\%. We present several optimization tools, describe how those tools affected the design of Click itself, and present detailed evaluations of Click's performance with and without optimization.
programming language optimality modular router configurability network systems ensemble flexibility processor process component design code efficiency requirements paper tools pragmatics performance examples combinational timing evaluation - compiler optimization