Sie könnten Ihre Codebasis auf eine RAM-Disk kopieren.
Volltextindizierung
Es gibt Tools wie recoll, swish-e und sphinx, aber Sie müssen prüfen, ob sie die Art von Suchkriterien unterstützen, die Sie benötigen.
Erinnern
Recoll ist ein persönliches Volltextsuchwerkzeug für Unix/Linux.
Swish-e
Swish-e ist ein schnelles, flexibles und kostenloses Open-Source-System zum Indizieren von Sammlungen von Webseiten oder anderen Dateien.
Sphinx
Mit Sphinx können Sie schnell und einfach entweder in einer SQL-Datenbank, in einem NoSQL-Speicher oder nur in Dateien gespeicherte Daten indizieren und durchsuchen
grep
Ich bin überrascht, dass grep so langsam ist, wie Sie es beschreiben. Können Sie die Anzahl der zu durchsuchenden Dateien reduzieren? Wenn ich zum Beispiel nur die Quelldateien nach einer ausführbaren Datei (von vielen in einem Projekt) durchsuchen muss, füttere ich grep die Namen von einem Befehl, der die Quelldateien für dieses Programm auflistet:
grep expression `sources myprogram`
sources
ist ein Programm, das für meine Entwicklungsumgebung spezifisch ist, aber Sie haben vielleicht etwas Äquivalentes (oder können es konstruieren).
Ich gehe davon aus, dass Sie offensichtliche Techniken wie
ausprobiert habenfind /foo/myproject -name "*.c" -exec fgrep -l searchtext
Ich habe einen Vorschlag gelesen, dass -P
Option des aktuellen grep
kann die Suche erheblich beschleunigen.
was ist mit cscope, passt das zu deinen schuhen?
Ermöglicht die Suche nach Code für:
- alle Verweise auf ein Symbol
- globale Definitionen
- Funktionen, die von einer Funktion aufgerufen werden
- Funktionen, die eine Funktion aufrufen
- Textzeichenfolge
- reguläres Ausdrucksmuster
- eine Datei
- Dateien einschließlich einer Datei