Une technique de recherche plus rapide que Ripgrep, grep, ag, Git grep, ucg, pt et sift (2016)
(blog.burntsushi.net)Résumé : présentation de ripgrep, un nouvel outil de recherche en ligne de commande
ripgrepest un nouvel outil de recherche en ligne de commande qui combine la facilité d’usage de The Silver Searcher et les performances de GNU grep.- Il fournit des binaires pour Linux, Mac et Windows, et est écrit en Rust.
- Il se distingue par ses performances et sa précision, aussi bien sur un fichier unique que lors de recherches dans de très grands répertoires.
- Sa prise en charge d’Unicode est excellente, et il est généralement plus rapide que les outils qui utilisent le memory mapping.
Présentation de ripgrep
Avantages
- Il est plus rapide que les autres outils de recherche et n’analyse pas les fichiers ignorés par
.gitignore. - Il permet de rechercher uniquement certains types de fichiers ou de les exclure.
- Il prend en charge de nombreuses fonctionnalités de
grepet gère toujours Unicode. - Il peut utiliser de façon optionnelle le moteur d’expressions régulières PCRE2.
- Il prend en charge divers encodages de texte ainsi que la recherche dans des fichiers compressés.
- Il prend en charge des filtres de prétraitement arbitraires en entrée.
Arguments contre
- Il ne respecte pas le standard POSIX et est moins universel que
grep. - Certaines fonctionnalités spécifiques ou certains bugs présents dans d’autres outils peuvent ne pas exister dans ripgrep.
- Dans certains cas limites de performance, ripgrep peut être plus lent que d’autres outils.
Installation
- Le nom du binaire de
ripgrepestrg, et il peut être installé sur diverses plateformes. - Des méthodes d’installation sont proposées pour Homebrew, Archlinux et les programmeurs Rust.
- Il est également possible de le compiler directement depuis les sources.
Visite rapide
- L’utilisation en ligne de commande de
ripgrepne diffère pas beaucoup de celle d’autres outils similaires. - Il prend automatiquement en charge la sortie terminal, les couleurs, l’affichage des numéros de ligne, etc.
- Il est possible d’effectuer des recherches à l’aide de nombreuses options et de différents motifs.
Structure de ripgrep
Contexte
- Explication des différences et des points communs entre
grepet les outils descendants deack. ripgrepcombine la capacité degrepà rechercher dans de gros fichiers et les réglages par défaut « intelligents » de recherche deack.
Préparation de la recherche de fichiers
- L’utilisation d’un itérateur de répertoires rapide et le filtrage des chemins de fichiers sont importants.
- L’application rapide des règles des fichiers
.gitignorea un impact sur les performances.
Recherche
- Un moteur d’expressions régulières rapide et l’optimisation des littéraux sont importants.
- Au lieu de rechercher ligne par ligne ou sur l’ensemble du fichier, il recherche de grands buffers en une seule fois.
Sortie
- Les résultats de recherche sont écrits dans un buffer mémoire, puis sérialisés vers
stdoutpour l’affichage.
Méthodologie
Vue d’ensemble
- L’accent est mis sur le problème que l’utilisateur cherche à résoudre, avec un effort pour proposer des benchmarks équitables.
- Divers outils sont benchmarkés, et les comparaisons tiennent compte des différences de comportement par défaut de chacun.
L’avis de GN⁺
Le point le plus important de cet article est qu’il explique en détail quels avantages ripgrep présente par rapport aux outils de recherche existants. En particulier, ses performances élevées, sa prise en charge d’Unicode et son support de divers formats de fichiers et encodages peuvent le rendre attractif pour les utilisateurs. Cet article est intéressant parce qu’il aide à comprendre en quoi ce nouvel outil diffère des outils existants, et comment ces différences peuvent avoir un impact concret pour les utilisateurs.
1 commentaires
Avis Hacker News
project.eletdumb-jumpd’Emacs est présentée.dumb-jumplimite automatiquement la recherche au type de fichier courant dans un répertoire de projet donné, et prend aussi en charge un autre outil rapide,ag..gitignore.