How to read RPS for fast rotation with status change method in Arduino?
For one channel I'd use Input Capture capability on Timer/Counter 1. Without debouncing it'll be pretty easy. 

If you want to read 8 inputs simultaneously, you can use Pin Change interrupts and Timer/Counter 1 as a timebase. If you don't use Serial communication, you can use whole PORTD, otherwise you can use for example 4 channels on PORTC and 4 channels on PORTD. But again, debouncing will be little bit challenging.