Repository logo
 

Tracing and its observer effect on concurrency

Published version
Peer-reviewed

Type

Conference Object

Change log

Abstract

Execution tracing has an observer effect: the act of tracing perturbs program behaviour via its overhead, which can in turn affect the accuracy of subsequent dynamic analysis. We investigate this observer effect in the context of concurrent behaviour within JVM-based programs. Concurrent behaviour is especially fragile as task-scheduling ordering can change, which could even lead to deadlock via thread starvation under certain conditions. We analyse three dimensions of overhead, compute volume, memory volume, and uniformity, using a configurable-overhead tracer and a concurrency-performance analyser. We argue that uniformity is a key, and underappreciated, dimension of overhead that can have qualitative effects on program behaviour. Experimental results show that overhead significantly affects real-world concurrent behaviour and subsequent analysis, at times unintuitively.

Description

Keywords

Performance analysis and monitoring, Dynamic program analysis, Concurrency, Execution tracing

Journal Title

MPLR 2021 - Proceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes

Conference Name

MPLR '21: 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes

Journal ISSN

Volume Title

Publisher

ACM