Guys, the delay is in microseconds, not percentage of the processor speed.
if you look at the results, you will see that when increasing the number of microseconds, the real delay is increasing by an increasing percentage until it reaches hundreds of micro seconds.
It is not a question o flushing the serial, because when data is sent to serial, all the calculation and preparation of the buffer was done before no matter how long it takes to send to serial
As you can see, the program is very simple, did you try in your board ?
flushing serial results in cleaning the serial content. The content is ok, and the the timing that takes to send to serial does not interfere in this result.
I don't think filling the serial buffer explains this, as the serial buffer bottleneck would leave the code getting hung up at the calls to Serial.print - but that's outside of the part being timed.....
That said, you should still flush the serial port after each round. Or just delay() long enough to make sure the serial data has a chance to send.
The people who post suggestions on this forum generally do so when we're not at our workshop - on train, during lunch, while waiting for stuff. When we're at home in our workshop, we usually have more compelling things to do, like working on our own projects.
Although time collection is done immediately before and after the delay request, there are interrupts occurring in the background with the serial that interfere with the result.
Thank you very much for the information and your time.
Sometimes we forget that background activities interfere.