EDPM: An embedded domain-specific language for performance monitoring C and C++ programs
2023 (English)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE credits
Student thesis
Abstract [en]
Manual insertion of performance monitoring probes gives programmers great control over the performance counters collected, but brings with it problems such as increased code size, obfuscated logic in code due to intermingling of application logic and performance probes, and time and mental cost required to learn the APIs of different performance monitoring tools. EDPM is an embedded domain-specific language that seeks to raise the level of abstraction for marking regions of code that need to be instrumented in C and C++ programs, designed to be easy to learn for programmers and to reduce the lines of code needed to collect performance counters. This thesis presents the design and implementation of a prototype, and compares it to PAPI, one prominent tool for manually inserting performance counter probes, with regard to required lines of code and flexibility in terms of possible configurations of regions. It is shown that EDPM provides a favorable decrease in lines of code in many cases, and in the cases where it does not, provides programmers with the ability to express novel configurations of regions. Using EDPM is shown to be benevolent towards existing software processes such that it can be introduced into source code without increasing executable sizes or disturbing any existing build system. The design of the precompiler that is part of EDPM also allows for the definition of new translation schemes that would provide additional available performance counters without lowering the abstraction for the programmer.
Place, publisher, year, edition, pages
2023. , p. 36
Keywords [en]
performance monitoring, domain-specific languages, language abstractions, compilers
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:bth-24297OAI: oai:DiVA.org:bth-24297DiVA, id: diva2:1738158
Subject / course
PA1445 Kandidatkurs i Programvaruteknik
Educational program
PAGPT Software Engineering
Supervisors
Examiners
2023-02-212023-02-212023-02-21Bibliographically approved