  Runtime monitors that are specified in a stream-based monitoring language
tend to be easier to understand, maintain, and reuse than those written in a
standard programming language. Because of their formal semantics, such
specification languages are also a natural choice for safety-critical
applications. Unlike for standard programming languages, there is, however, so
far very little support for automatic code optimization. In this paper, we
present the first collection of code transformations for the stream-based
monitoring language RTLola. We show that classic compiler optimizations, such
as Sparse Conditional Constant Propagation and Common Subexpression
Elimination, can be adapted to monitoring specifications. We also develop new
transformations -- Pacing Type Refinement and Filter Refinement -- which
exploit the specific modular structure of RTLola as well as the implementation
freedom afforded by a declarative specification language. We demonstrate the
significant impact of the code transformations on benchmarks from the
monitoring of unmanned aircraft systems (UAS).
