Does "Pulse in" function cause delay?

My project is measuring the length of the object with using 2 ultrasonic sensor then make a response accordingly. When i put a LCD display to test the time required to complete a loop, it showed 4 second delay with using the milli() function. the figure will change after 4 second. Is it the "pulse in function" causes delay? How can i solve for it? Thanks. My coding is below

void loop()
{
/* Part 1 : Ultrasonic Sensor Detection */

int distance1, distance2, duration; //Local Declaration and Initialization

PORTC |= _BV(PC3); //digitalWrite(TrigPin1, HIGH); //Ultrasonic Sensor 1
delayMicroseconds(10);
PORTC &= ~_BV(PC3); //digitalWrite(TrigPin1, LOW);
duration=pulseIn(EchoPin1, HIGH);
distance1= calculation(duration);

delay(300);

PORTC |= _BV(PC5); //digitalWrite(TrigPin2, HIGH); //Ultrasonic Sensor 2
delayMicroseconds(10);
PORTC &= ~_BV(PC5); //digitalWrite(TrigPin2, LOW);
duration=pulseIn(EchoPin2, HIGH);
distance2= calculation(duration);

Serial.print("distance1=> "); //Serial Print the distances that are detected by both sensors
Serial. print(distance1);
Serial.print("cm ");
Serial.print("distance2=> ");
Serial.print(distance2);
Serial.println("cm ");
}

int calculation(int x)
{
return (x/2)/29;
}

Your question [ Does "Pulse in" function cause delay?] Yes, it is a blocking function.

I think, first thing is to get rid of all delay() functions.

Do you know the distances you are able to read?
Do you know how long (microseconds) the range will take?
I really don't know, but I suspect that would be valuable info to know. Or use a library.

You can minimize the time that the pulseIn() function takes by using the timeout (optional third parameter). What is the maximum range that you care about (in feet). Multiply the max range by 2. That will be the maximum milliseconds (times 1000 to microseconds) to wait for an echo. So if the max range is 5 feet, timeout would be about 10 milliseconds or 10000 microseconds. Then use pulseIn(echo, HIGH, 10000). If pulseIn doesn't get an echo in 10000 microseconds it will return. Without the timeout it can wait for over a second if it sees no transition.