Potresti copiare la tua base di codice su un disco RAM.
Indicizzazione full-text
Esistono strumenti come recoll, swish-e e sphinx, ma dovresti verificare se possono supportare il tipo di criteri di ricerca di cui hai bisogno.
Ricorda
Recoll è uno strumento di ricerca full text personale per Unix/Linux.
Swish-e
Swish-e è un sistema open source veloce, flessibile e gratuito per l'indicizzazione di raccolte di pagine Web o altri file.
Sfinge
Sphinx ti consente di eseguire l'indicizzazione e la ricerca in batch dei dati archiviati in un database SQL, nell'archiviazione NoSQL o solo nei file in modo rapido e semplice
grep
Sono sorpreso che grep sia lento come descrivi, puoi ridurre il numero di file da cercare? Ad esempio, quando ho solo bisogno di cercare nei file sorgente un eseguibile (tra i tanti in un progetto) fornisco a grep i nomi da un comando che elenca i file sorgente per quel programma:
grep expression `sources myprogram`
sources
è un programma specifico per il mio ambiente di sviluppo ma potresti avere (o essere in grado di costruire) qualcosa di equivalente.
Suppongo che tu abbia provato tecniche ovvie come
find /foo/myproject -name "*.c" -exec fgrep -l searchtext
Ho letto un suggerimento che il -P
opzione dell'attuale grep
può velocizzare notevolmente le ricerche.
che mi dici di cscope, si abbina alle tue scarpe?
Consente la ricerca del codice per:
- tutti i riferimenti a un simbolo
- definizioni globali
- funzioni chiamate da una funzione
- funzioni che chiamano una funzione
- stringa di testo
- modello di espressione regolare
- un file
- file che includono un file