The examination of performance changes or the performance behavior of a software requires the measurement of the performance. This is done via probes, i.e., pieces of code which obtain and process measurement data, and which are inserted into the examined application. The execution of those probes in a singular method creates overhead, which deteriorates performance measurements of calling methods and slows down the measurement process. Therefore, an important challenge for performance measurement is the reduction of the measurement overhead. To address this challenge, the overhead should be minimized. Based on an analysis of the sources of performance overhead, we derive the following four optimization options: (1) Source instrumentation instead of AspectJ instrumentation, (2) reduction of measurement data, (3) change of the queue and (4) aggregation of measurement data. We evaluate the effect of these optimization options using the MooBench benchmark. Thereby, we show that these optimizations options reduce the monitoring overhead of the monitoring framework Kieker. For MooBench, the execution duration could be reduced from 4.77 ms to 0.39 ms per method invocation on average.
翻译:对软件性能的检查需要通过探针来测量性能,即插入到检查的应用程序中的获取和处理测量数据的代码片段。探针的单个方法执行会创建开销,这会降低调用方法的性能测量并减慢测量过程。因此,性能测量的一个重要挑战是减少测量开销。为了解决这个挑战,必须最小化开销。基于对性能开销来源的分析,我们得出以下四个优化选项:(1)使用源仪器而不是 AspectJ 仪器进行仪器化、(2)减少测量数据、(3)更改队列和(4)聚合测量数据。我们使用 MooBench 基准来评估这些优化选项的效果。通过这种方式,我们展示了这些优化选项减少了监控框架 Kieker 的监控开销。对于 MooBench,平均执行时间可以从每个方法调用的 4.77 毫秒降至 0.39 毫秒。