Il y a quelque temps, j'ai partagé quelques alternatives à "top", l'utilitaire de ligne de commande . Certains utilisateurs m'ont demandé lequel de ces outils est le meilleur et sur quelle base (comme les fonctionnalités, les contributeurs, les années d'activité, les demandes de pages, etc.) j'ai comparé ces outils. Ils m'ont également demandé de partager les résultats de l'analyse comparative si j'en ai. Malheureusement, je ne savais pas comment évaluer les programmes à l'époque. En cherchant des outils d'analyse comparative simples et faciles à utiliser pour comparer les programmes Linux, je suis tombé sur deux utilitaires nommés 'Bench' et 'Hyperfin' . Ce sont des outils de ligne de commande simples et faciles à utiliser pour évaluer les commandes et les programmes Linux sur les systèmes Linux et Unix.
1. Comparez les commandes et les programmes Linux à partir de la ligne de commande à l'aide de Bench Tool
Le 'Banc' l'utilitaire compare une ou plusieurs commandes/programmes donnés en utilisant le critère de Haskell bibliothèque et affiche les statistiques de sortie dans un format facile à comprendre. Cet outil peut être utile lorsque vous devez comparer des programmes similaires en fonction du résultat de l'analyse comparative. Nous pouvons également exporter les résultats au format HTML ou CSV ou une sortie basée sur un modèle.
1.1. Installer l'utilitaire Bench sous Linux
L'utilitaire bench peut être installé selon trois méthodes.
Nous pouvons installer l'utilitaire Bench à l'aide du gestionnaire de packages Linuxbrew. Si vous n'avez pas encore installé Linuxbrew, consultez le lien suivant.
- Linuxbrew :un gestionnaire de packages commun pour Linux et Mac OS X
Après avoir installé Linuxbrew, exécutez la commande suivante pour installer Bench :
$ brew install bench
Tout d'abord, installez Haskell comme décrit dans le lien suivant.
- Démarrer avec le langage de programmation Haskell
Ensuite, exécutez les commandes suivantes pour installer Bench.
$ stack setup
$ stack install bench
La 'pile' installera bench sur ~/.local/bin ou quelque chose de similaire. Assurez-vous que le répertoire d'installation se trouve sur votre chemin de recherche d'exécutables avant d'utiliser l'outil bench. On vous rappellera de le faire même si vous l'avez oublié.
Une autre façon d'installer Bench consiste à utiliser Nix directeur chargé d'emballage. Installez Nix comme indiqué dans le lien ci-dessous.
- Nix – Un puissant gestionnaire de packages pour Linux et Unix
Après avoir installé Nix, installez l'outil Bench à l'aide de la commande :
$ nix-env -i bench
1.2. Comparer les commandes et les programmes Linux à l'aide de Bench
Comparons le résultat de la commande 'ls -al'. Pour ce faire, exécutez :
$ bench 'ls -al'
Exemple de résultat :
Commande "ls" de référence
Vous devez citer les commandes lorsque vous utilisez des drapeaux/options avec elles.
De même, vous pouvez comparer tous les programmes installés sur votre système. Les commandes suivantes montrent le résultat de l'analyse comparative des programmes 'htop' et 'ptop'.
$ bench htop
$ bench ptop
Benchmark des programmes htop et ptop
L'outil Bench peut également comparer plusieurs programmes à la fois. Voici le résultat de l'analyse comparative des programmes ls, htop, ptop.
$ bench ls htop ptop
Exemple de sortie :
Comparez plusieurs programmes
Nous pouvons également exporter le résultat du benchmark vers un HTML comme ci-dessous.
$ bench htop --output example.html
Pour exporter le résultat au format CSV, exécutez simplement :
$ bench htop --csv FILE
Afficher la section d'aide :
$ bench --help
2. Comparez les commandes et les programmes Linux à partir de la ligne de commande à l'aide d'Hyperfine
Hyperfin est encore un autre outil d'analyse comparative en ligne de commande inspiré de l'outil "Bench" dont nous venons de parler ci-dessus. Il s'agit d'un programme d'analyse comparative gratuit, open source, multiplateforme et écrit en Rust langage de programmation. Il a peu de fonctionnalités supplémentaires par rapport à l'outil Bench comme indiqué ci-dessous.
- Analyse statistique sur plusieurs exécutions
- Prise en charge des commandes shell arbitraires.
- Commentaires constants sur la progression de l'analyse comparative et les estimations actuelles
- Effectuer des exécutions de préchauffage avant le benchmark réel.
- Les commandes d'effacement du cache peuvent être configurées avant chaque exécution.
- Détection statistique des valeurs aberrantes.
- Exportez les résultats de l'analyse comparative dans différents formats, tels que CSV, JSON, Markdown.
- Besoins de référence paramétrés.
2.1. Installer Hyperfine sous Linux
Nous pouvons installer Hyperfine en utilisant l'une des méthodes suivantes.
$ brew install hyperfine
Assurez-vous d'avoir installé Rust comme décrit dans le lien suivant.
- Installer le langage de programmation Rust sous Linux
Après avoir installé Rust, exécutez la commande suivante pour installer Hyperfine via Cargo :
$ cargo install hyperfine
Hyperfine est disponible en AUR . Ainsi, vous pouvez l'installer sur des systèmes basés sur Arch en utilisant n'importe quel programme d'assistance, tel que YaY , comme ci-dessous.
$ yay -S hyperfine
Hyperfine est disponible en binaires pour les systèmes basés sur Debian. Téléchargez le dernier fichier binaire .deb depuis la page des versions et installez-le à l'aide du gestionnaire de packages 'dpkg'. Au moment de la rédaction de ce guide, la dernière version était 1.4.0 .
$ wget https://github.com/sharkdp/hyperfine/releases/download/v1.4.0/hyperfine_1.4.0_amd64.deb
$ sudo dpkg -i hyperfine_1.4.0_amd64.deb
$ sudo apt install -f
2.2. Commandes et programmes Linux de référence utilisant Hyperfine
Pour exécuter un benchmark à l'aide d'Hyperfine, exécutez-le simplement avec le programme/la commande comme indiqué ci-dessous.
$ hyperfine 'ls -al'
Commandes de référence utilisant hyperfine
Comparez plusieurs commandes/programmes :
$ hyperfine htop ptop
Exemple de sortie :
Comparez plusieurs programmes à l'aide de l'hyperfin
Comme vous pouvez le voir à la fin de la sortie, Hyperfine mentionne - 'htop s'exécute 1,96 fois plus vite que ptop' , nous pouvons donc immédiatement conclure que htop fonctionne mieux que Ptop. Cela vous aidera à trouver rapidement quel programme fonctionne le mieux lors de l'analyse comparative de plusieurs programmes. Cependant, nous n'obtenons pas cette sortie détaillée dans l'utilitaire Bench.
Hyperfine déterminera automatiquement le nombre d'exécutions à effectuer pour chaque commande. Par défaut, il effectuera au moins 10 analyses comparatives . Si vous souhaitez définir le nombre minimum d'exécutions (Par exemple 5 courses), utilisez le -m
/--min-runs
comme ci-dessous :
$ hyperfine --min-runs 5 htop ptop
Ou,
$ hyperfine -m 5 htop ptop
De même, pour effectuer le nombre maximum d'exécutions pour chaque commande, la commande serait :
$ hyperfine --max-runs 5 htop ptop
Ou,
$ hyperfine -M 5 htop ptop
Nous pouvons même effectuer le nombre exact d'exécutions pour chaque commande en utilisant la commande suivante :
$ hyperfine -r 5 htop ptop
Comme vous le savez peut-être, si le temps d'exécution du programme est limité par les E/S de disque, les résultats de l'analyse comparative peuvent être fortement influencés par les caches de disque et s'ils sont froids ou chauds. Heureusement, Hyperfine a la possibilité d'effectuer un certain nombre d'exécutions de programme avant d'effectuer le benchmark réel.
Pour effectuer NUM exécutions de préchauffage (par exemple 3) avant le benchmark réel, utilisez le -w
/ --warmup
comme ci-dessous :
$ hyperfine --warmup 3 htop
Tout comme l'utilitaire Bench, Hyperfine nous permet également d'exporter les résultats de référence vers un fichier donné. Nous pouvons exporter les résultats aux formats CSV, JSON et Markdown.
Par exemple, pour exporter les résultats au format Markdown, utilisez la commande suivante :
$ hyperfine htop ptop --export-markdown <FILE-NAME>
Pour plus d'options et de détails d'utilisation, reportez-vous à la section d'aide :
$ hyperfine --help
Et, c'est tout pour le moment. Si vous avez déjà été dans une situation où vous avez besoin de comparer des programmes similaires et alternatifs, ces outils peuvent vous aider.