Vous pouvez copier votre base de code sur un disque RAM.
Indexation de texte intégral
Il existe des outils tels que recoll, swish-e et sphinx, mais vous devez vérifier s'ils peuvent prendre en charge le type de critères de recherche dont vous avez besoin.
Rappel
Recoll est un outil personnel de recherche plein texte pour Unix/Linux.
Swish-e
Swish-e est un système open source rapide, flexible et gratuit pour indexer des collections de pages Web ou d'autres fichiers.
Sphinx
Sphinx vous permet d'indexer par lots et de rechercher des données stockées dans une base de données SQL, un stockage NoSQL ou simplement des fichiers rapidement et facilement
grep
Je suis surpris que grep soit aussi lent que vous le décrivez, pouvez-vous réduire le nombre de fichiers recherchés ? Par exemple, lorsque je n'ai besoin de rechercher les fichiers source que pour un seul exécutable (parmi plusieurs dans un projet), j'alimente grep les noms à partir d'une commande qui répertorie les fichiers source de ce programme :
grep expression `sources myprogram`
sources
est un programme spécifique à mon environnement de développement mais vous pouvez avoir (ou être capable de construire) quelque chose d'équivalent.
Je suppose que vous avez essayé des techniques évidentes telles que
find /foo/myproject -name "*.c" -exec fgrep -l searchtext
J'ai lu une suggestion selon laquelle le -P
option du grep
actuel peut accélérer considérablement les recherches.
Qu'en est-il de cscope, est-ce que cela correspond à vos chaussures ?
Permet de rechercher le code pour :
- toutes les références à un symbole
- définitions globales
- fonctions appelées par une fonction
- fonctions appelant une fonction
- chaîne de texte
- modèle d'expression régulière
- un fichier
- fichiers incluant un fichier