Ah very cool. I thought this was going to be a tongue-in-cheek article about the proliferation of random corporate-mandated CPU hogs like croudstrike or w/e.
Pleasantly surprised by the technical article :). Reminds me of a lot of precise-number-of-idle-cycles functions from embedded world in a prior life
Likewise. Wasting user space CPU cycles is actually a moderately tricky thing to do when we have optimising compilers. Its not something that comes up a lot but it is occasionally something you do need to do in order to test other things and it is different to making a lot of system calls.
I think volatile is usually fairly well contained I can't immediately think of an obvious case where it could adjust the performance of the calling context indirectly but its pushing the problem onto that cache coherence part of the CPU so its not quite the same as an algorithm that consumes all the memory bandwidth or execution ports. Lots of little interesting trade offs in the weeds of this and other potential solutions depending on if any of this matters.
I'm glad you like my article. I wasted far too much time researching and profiling my solutions. I'm writing a blog post every one to two weeks, so I hope you'll come back.
Pleasantly surprised by the technical article :). Reminds me of a lot of precise-number-of-idle-cycles functions from embedded world in a prior life