Proceedings paper

Analysis of Overhead in Dynamic Java Performance Monitoring
Vojtěch Horký, Jaroslav Kotrč, Peter Libič, Petr Tůma
Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering

In production environments, runtime performance monitoring is often limited to logging of high level events. More detailed measurements, such as method level tracing, tend to be avoided because their overhead can disrupt execution. This limits the information available to developers when solving performance issues at code level. One approach that reduces the measurement disruptions is dynamic performance monitoring, where the measurement instrumentation is inserted and removed as needed. Such selective monitoring naturally reduces the aggregate overhead, but also introduces transient overhead artefacts related to insertion and removal of instrumentation. We experimentally analyze this overhead in Java, focusing in particular on the measurement accuracy, the character of the transient overhead, and the longevity of the overhead artefacts. Among other results, we show that dynamic monitoring requires time from seconds to minutes to deliver stable measurements, that the instrumentation can both slow down and speed up the execution, and that the overhead artefacts can persist beyond the monitoring period.

    title = {{Analysis of Overhead in Dynamic Java Performance Monitoring}},
    author = {Horký, Vojtěch and Kotrč, Jaroslav and Libič, Peter and Tůma, Petr},
    year = {2016},
    booktitle = {{Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering}},
    publisher = {ACM},
    series = {{ICPE '16}},
    location = {New York, NY, USA},
    doi = {10.1145/2851553.2851569},
    isbn = {978-1-4503-4080-9},
    pages = {275--286},
    url = {},