  Where full static analysis of systems fails to scale up due to system size,
dynamic monitoring has been increasingly used to ensure system correctness. The
downside is, however, runtime overheads which are induced by the additional
monitoring code instrumented. To address this issue, various approaches have
been proposed in the literature to use static analysis in order to reduce
monitoring overhead. In this paper we generalise existing work which uses
control-flow static analysis to optimise properties specified as automata, and
prove how similar analysis can be applied to more expressive symbolic automata
- enabling reduction of monitoring instrumentation in the system, and also
monitoring logic. We also present empirical evidence of the effectiveness of
this approach through an analysis of the effect of monitoring overheads in a
financial transaction system.
