Ah yes. The speedup-loop.
https://thedailywtf.com/articles/The-Speedup-Loop89 0 ReplyThis is brilliant.
23 0 Reply
I think some compilers will just drop that in the optimization step.
83 0 ReplyReal pain in the ass when you're in embedded and your carefully placed NOPs get stripped
29 0 Replyasm("nop");
5 0 Reply
Homer: "oh yeah speed
holessleep"16 0 ReplySleep holes
3 0 Reply
Tell the CPU to wait for you?
Na, keep the CPU busy with useless crap till you need it.
71 0 ReplyFuck those other processes. I want to hear that fan.
27 0 ReplyI paid good money for my fan, I want to know it's working!
4 0 Reply
Have you considered a career in middle management
25 0 Reply
On microcontrollers that might be a valid approach.
26 0 ReplyI've written these cycle-perfect sleep loops before.
It gets really complicated if you want to account for time spent in interrupt handlers.
11 0 ReplyThankfully I didn't need high precision realtime. I just needed to wait a few seconds for serial comm.
2 0 Reply
But then I gotta buy a space heater too...
1 0 ReplyMicrocontrollers run 100% of the time even while sleeping.
4 0 Reply
This should be the new isEven()/isOdd(). Calculate the speed of the CPU and use that to determine how long it might take to achieve a 'sleep' of a required time.
13 0 ReplyI took an embedded hardware class where specifically we were required to manually calculate our sleeps or use interrupts and timers rather than using a library function to do it for us.
12 0 Reply
Its a thing. https://en.m.wikipedia.org/wiki/Busy_waiting
11 0 ReplyJavascript enters chat:
await new Promise(r => setTimeout(r, 2000));
Which is somehow even worse.
11 1 ReplyAs someone who likes to use the CPU, I don't think it's worse.
4 0 ReplyI mean, it’s certainly better than pre-2015.
2 0 Reply
I actually remember the teacher having us do this in high school. I tried it again a few years later and it didn't really work anymore.
5 0 ReplyOn my first programming lesson, we were taught that 1 second sleep was
for i = 1 to 1000
😀, computers was not that fast back then...13 0 ReplyI mean maybe in an early interpreted language like BASIC… even the Intel 8086 could count to 1000 in a fraction of a second
3 0 Reply
You gotta measure the latency of the first loop.
4 0 ReplyI can relate. We have breaks ate work too.
4 0 ReplyI just measured it, and this takes 0.17 seconds. And it's really reliable, I added another zero to that number and it was 1.7 seconds
2 0 Reply1 0 ReplySudo sleep
1 1 Reply