Probabilistic Program Performance Analysis

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

We introduce a tool-supported method for the formal analysis of timing, resource use, cost and other quality aspects of computer programs. The new method synthesises a Markov-chain model of the analysed code, computes this quantitative model’s transition probabilities using information from program logs, and employs probabilistic model checking to evaluate the performance properties of interest. Unlike existing solutions, our method can reuse the probabilistic model to accurately predict how the program performance would change if the code ran on a different hardware platform, used a new function library, or had a different usage profile. We show the effectiveness of our method by using it to analyse the performance of Java code from the Apache Commons Math library, the Android messaging app Telegram, and an implementation of the knapsack algorithm.
Original languageEnglish
Title of host publicationEUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2021)
PublisherIEEE
Pages148-157
Number of pages10
DOIs
Publication statusAccepted/In press - 1 Jun 2021

Bibliographical note

This is an author-produced version of the published paper. Uploaded in accordance with the publisher’s self-archiving policy. Further copying may not be permitted; contact the publisher for details.

Cite this