The code in this bears a remarkable similarity to the snippet in the OP: Arduino Frequency Counter Tutorial with Circuit Diagrams & Code
It makes this quite remarkable claim also:
This Frequency Meter can measure frequencies up to 1 MHz.
Edit:
PulseIn() has this performance from here :
The timing of this function has been determined empirically and will probably show errors in longer pulses. Works on pulses from 10 microseconds to 3 minutes in length.