An Approach to Static Performance Guarantees for Programs with Run-time Checks
Maximiliano Klemen, Nataliia Stulova, Pedro Lopez-Garcia, Jos\'e F., Morales, Manuel V. Hermenegildo

TL;DR
This paper introduces a static analysis method to estimate run-time checking overhead in programs, providing guarantees across all execution paths and input sizes, which helps programmers manage performance costs effectively.
Contribution
The authors develop a static analysis technique that estimates run-time check overhead with guarantees, extending assertion frameworks to verify adherence to admissible overheads.
Findings
The method can predict overhead growth as input size increases.
It provides guarantees for all possible execution traces.
Experimental results show the approach is feasible and promising.
Abstract
Instrumenting programs for performing run-time checking of properties, such as regular shapes, is a common and useful technique that helps programmers detect incorrect program behaviors. This is specially true in dynamic languages such as Prolog. However, such run-time checks inevitably introduce run-time overhead (in execution time, memory, energy, etc.). Several approaches have been proposed for reducing such overhead, such as eliminating the checks that can statically be proved to always succeed, and/or optimizing the way in which the (remaining) checks are performed. However, there are cases in which it is not possible to remove all checks statically (e.g., open libraries which must check their interfaces, complex properties, unknown code, etc.) and in which, even after optimizations, these remaining checks still may introduce an unacceptable level of overhead. It is thus important…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
