What does Arduino do in 15ms? I was wondering why there is a 15 ms delay between each iteration of a the main loop.

Code:
The following code shows the execution time expressed in microsec between each loop

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.println();
  Serial.print("Start: ");
  Serial.print(micros());
  Serial.print("/////////////////////");
  Serial.print("End:");
  Serial.print(micros()); 
}


Output:

Start: 789452/////////////////////End:821692
Start: 837292/////////////////////End:869532
Start: 885132/////////////////////End:917372
Start: 932972/////////////////////End:965212


Arduino needs 32,240 msec to print the messages to serial and to call the micros() function twice. And this it's fine. Now, considering the difference between the values of the End and the following Start, one question arises:

What does Arduino do between each loop?
Just check the sourcecode

for (;;) {
    loop();
    if (serialEventRun) serialEventRun();
}


So it does a check if serialEventRun is True, and then a jump back to the beginning of the for-loop. And then a call to loop.

Also note that Serial.print is blocking if the TX-buffer is full. So you might want to add a delay somewhere to ensure the buffer is never full.