The aim of this work is to measure the impact of aspect-oriented programming on software performance. Thus, we hypothesized as follow: adding aspects to a base program will affect its performance because of the overhead caused by the control flow switching, and that incremental effect on performance is more obvious as the number of join points increases. To test our hypotheses we carried out a case study of two concurrent architectures: Half-Sync/Half-Async and Leader/Followers. Aspects are extracted and encapsulated and the base program performance was compared to the aspect program. Our results show that the aspect-oriented approach does not have significant effect on the performance and that in some cases an aspect-oriented program even outperforms the non-aspect program. We also investigated the effect of cache fault rate on performance for both aspect and non-aspect programs. Based on our experiments, the results demonstrate that there is a close correlation between the cache fault rate and performance, which may be in favor of aspect code if some aspects are frequently accessed. Additionally, the introduction of a large number of join points does not have significant effect on performance.

Additional Metadata
Keywords Architectural patterns, Aspect-oriented programming, Concurrency, Software performance
Persistent URL
Journal Information Systems Frontiers
Lung, C.H, Ajila, S, & Liu, W.-L. (Wen-Lin). (2014). Measuring the performance of aspect oriented software: A case study of Leader/Followers and Half-Sync/Half-Async architectures. Information Systems Frontiers, 16(5), 853–866. doi:10.1007/s10796-013-9423-z