The problem is that he's calling FindMatches() (almost) every tick, even if nothing has changed from the last time the call was made. FindMatches() is a very expensive operation, so you only want to call it when something changes.
I've added a FindActive flag to minimize the number of FindMatches() called. Do a search for FindActive, to see what was changed.
I've added a FPS display to show that it stays mostly at 60fps.