Performance regressions are a rising concern and detecting them early is difficult as performance testing is a resource intensive activity.
A major cause for performance regressions, recent studies show, is changes in program logic that result in expensive code regions or calls being executed more times than expected.
We propose an approach for rapid detection of these kind of regressions using a performance simulator that reports the exact number of times expensive calls would have been hit. Our approach aims to build these simulators from executable dynamic slices that run significantly faster than the original program.
The correctness of such simulators could be constrained as in principle there are no guarantees on the correctness of executing a dynamic slice beyond the tests that were used to generate it. In this paper we propose a novel method for certifying correctness of results even for inputs that were not used for building the simulator. Finally, we discuss two case studies that illustrate the potential benefits of the proposal.