To elaborate assumeing you you have 1 revolution per second. On the "coil lead" you would have 8 spikes per second. In this case (1/8=125ms) As apposed to (1/2=500ms). To count a spike you need to "read" from a pin and the code has to be in position to wait for a spike. So the code might do something like this
if there is a spike then{
Take a note of the time (during this part of the code you can not detect another spike)
Add one to a counter (during this part of the code you can not detect another spike)
if the counter is equal to 8 then{
Calculate how long it took to do 1 rev (during this part of the code you can not detect another spike)
Calculate RPM (during this part of the code you can not detect another spike)
Print this to a display (during this part of the code you can not detect another spike)
}
}
So if you have 1 rps all that code has to run in 125ms so as not to miss a spike
in reality you might be running at 3000RPM
50 Revolutions per second
each revolution = 1/50 = 20ms
20/8 = 2.5ms to run the code
or
20/2 = 10ms to run the code
Having just worked that out it is still very very fast and i might have a rethink if this is the best way to aproach the counting ....

Let me know if i have donesomething stupid with my maths. Tobe honest i realy have no idea what the rev ranges of differnt engines are, isthere somewhere i can get this info?