Update time of sensor?

Is there anyway to increase how fast an Arduino board reads inputs from a infrared receiver? I have written code that reads the state of the receiver and when the beam from an high output Infrared LED is broken it switches a pair of Mosfets in a sequence that is determined via a switch case. The code works as intended, except in the presence of rapid breaks in the beam. If a break is less then lets say half a second or so it is not registered. I have written debouncing into the program but it seems like a increase in debounce time simply increases the number of perceived state change versus the actual state change, i.e. I break the beam once, and the serial monitor shows it as 5 separate inputs on the same pin and vice versa. Set at 45ms and a delay at the end of the loop function of 50ms to slow communication to the serial monitor as to not overload it (ide and the monitor become non responsive without the delay. Any ideas?