I'm using command-t and it works fine for me even in large code base.
AFAIK, ag shines for searching code in large code base, if you are just doing matching with a list of file paths, ag is an overkill.
EDIT: And if you set `wildignore` correctly, you wouldn't have a lot of files. Getting node_modules/ out of my Command-T result made it much faster. I actually wrote a plugin[0] to extract patterns from `.gitignore` and apply to `wildignore`, so that Command-T and CtrlP could have a shorter list to search for.