Evaluating Candidate Instructions for Reliable Program Slowdown at the Compiler Level
Slowing down programs has surprisingly many use cases: it helps finding race conditions, enables speedup estimation, and allows us to assess a profiler’s accuracy. Yet, slowing down a program is complicated because today’s CPUs and runtime systems can optimize execution on the fly, making it challenging to preserve a program’s performance behavior to avoid introducing bias. We evaluate six x86 instruction candidates for controlled and fine-grained slowdown including NOP, MOV, and PAUSE. We tested each candidate’s ability to achieve an overhead of 100%, to maintain the profiler-observable performance behavior, and whether slowdown placement within basic blocks influences results. On an Intel Core i5-10600, our ex- periments suggest that only NOP and MOV instructions are suit- able. We believe these experiments can guide future research on advanced developer tooling that utilizes fine-granular slowdown at the machine-code level.
Authors
- Humphrey Burchell (ORCID: https://orcid.org/0000-0003-4728-5819)
- Stefan Marr (ORCID: https://orcid.org/0000-0001-9059-5180)
Institutions
- University of Kent (GB)
Publication Details
- Published
- 2025-10-09
- DOI
- https://doi.org/10.1145/3759548.3763374
- Citations
- 1
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 2.27