TY - GEN
T1 - Evaluating Candidate Instructions for Reliable Program Slowdown at the Compiler Level: Towards Supporting Fine-Grained Slowdown for Advanced Developer Tooling
AU - Burchell, Humphrey
AU - Marr, Stefan
PY - 2025/10/9
Y1 - 2025/10/9
N2 - 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 experiments suggest that only NOP and MOV instructions are suitable. We believe these experiments can guide future research on advanced developer tooling that utilizes fine-granular slowdown at the machine-code level.
AB - 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 experiments suggest that only NOP and MOV instructions are suitable. We believe these experiments can guide future research on advanced developer tooling that utilizes fine-granular slowdown at the machine-code level.
KW - Benchmarking HotSpot ISA Instructions Java MeMyPublication assembly evaluation myown slowdown x86
UR - https://www.scopus.com/pages/publications/105021400718
U2 - 10.1145/3759548.3763374
DO - 10.1145/3759548.3763374
M3 - Conference proceedings
T3 - VMIL
SP - 52
EP - 58
BT - Proceedings of the 17th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages
A2 - Marr, Stefan
A2 - Akram, Shoaib
A2 - Izawa, Yusuke
PB - ACM
ER -