Comment faire du benchmark en Go ?
Le langage Go est un langage de programmation efficace, fortement typé et sécurisé contre la concurrence qui se concentre sur les hautes performances et l'efficacité dès le début de sa conception. Les tests de référence sont l'une des méthodes utilisées dans le langage Go pour tester les performances et l'efficacité du code.
Dans cet article, nous présenterons les concepts et les objectifs de l'analyse comparative, puis expliquerons comment utiliser le package de test intégré de Go pour effectuer une analyse comparative.
Qu'est-ce qu'un benchmark ?
Le benchmarking est une méthode utilisée pour tester les performances d'un programme afin de déterminer les performances et la vitesse d'un code ou d'un algorithme. Habituellement, pour écrire du code haute performance, nous devons optimiser les algorithmes et les structures de données. Cependant, si nous ne disposons pas d’un moyen d’évaluer les performances, nous ne saurons peut-être pas quelle méthode est la meilleure.
Le benchmarking est un moyen de quantifier et d'évaluer les performances du code. En écrivant des codes de test et en les exécutant à plusieurs reprises, observez la vitesse et l'efficacité de l'exécution du code dans les résultats des tests. Cela nous aide à optimiser notre code pour de meilleures performances.
Quel est l'objectif ?
L'objectif principal du benchmarking est de déterminer les performances d'un ensemble de code. Souvent, cet ensemble de codes utilisera différents algorithmes ou structures de données pour obtenir le même résultat. Les benchmarks peuvent nous aider à déterminer quel algorithme ou quelle structure de données est le plus efficace pour obtenir de meilleures performances.
Un autre objectif est d'identifier les défauts et les goulots d'étranglement dans votre code. Lors des tests, nous pouvons voir combien de temps et à quelle vitesse le code s'exécute pour comprendre les problèmes possibles dans le code. En identifiant les problèmes et les goulots d'étranglement, nous pouvons optimiser davantage le code et les algorithmes pour de meilleures performances.
Analyse comparative à l'aide du package de tests intégré de Go
Le package de tests intégré de Go fournit des fonctionnalités pour l'écriture de tests de référence. Le package de tests prend en charge la combinaison du code de test avec des références et des tests de performances. Nous pouvons utiliser testing.B pour écrire et exécuter des benchmarks. testing.B est un sous-ensemble de testing.T, qui est une structure représentant un test de référence.
Pour rédiger un test de benchmark, veuillez suivre ces étapes :
- Créez la fonction de test dans le fichier _test.go
Le test doit commencer par le préfixe Benchmark, suivi du nom de la fonction de test, du préfixe Test ne peut pas être utilisé. Cette fonction doit accepter un paramètre de type *testing.B.
À proprement parler, le format de la routine est : func BenchmarkXxx(*testing.B), où Xxx peut être le nom de la fonction, exemple : BenchmarkHello.
Exemple :
func BenchmarkMyFunction(b *testing.B) { for n := 0; n < b.N; n++ { // Call the function you want to benchmark myFunction() } }
Dans cet exemple, nous testons la fonction myFunction() et l'exécutons plusieurs fois à l'aide d'une boucle for.
- Exécuter des benchmarks
Pour exécuter des benchmarks, utilisez la commande go test avec l'indicateur -bench. L'indicateur -bench est suivi d'une expression régulière indiquant les tests à exécuter.
Exemple :
go test -bench=.
Cela exécutera des benchmarks correspondant à tous les noms de benchmarks dans le répertoire actuel. Vous pouvez également transmettre un nom de package comme argument pour effectuer un test afin d'exécuter uniquement les tests de performance de ce package.
- Analyser les résultats des tests
go test affichera les résultats du test sur la console. La sortie inclut le nom de chaque test, le nombre d’exécutions et la durée totale. Le format du résultat de sortie est :
BenchmarkMyFunction 1000000 97.9 ns/op
où BenchmarkMyFunction est le nom du test, 1000000 est le nombre d'exécutions de test et 97,9 ns/op est la durée moyenne (nanosecondes) de chaque opération.
Les résultats du test peuvent changer en raison de l'influence d'autres programmes en cours d'exécution, il est donc recommandé d'exécuter le test plusieurs fois pour obtenir des résultats plus précis.
Résumé
Go benchmark est une méthode utilisée pour quantifier et évaluer les performances de votre code. L'écriture et l'exécution de benchmarks sont faciles grâce au package de test intégré de Go. L'analyse comparative peut nous aider à déterminer quel algorithme ou quelle structure de données est la plus efficace et à identifier les problèmes et goulots d'étranglement possibles dans le code. En fin de compte, grâce à l’optimisation des benchmarks, nous pouvons obtenir de meilleures performances et efficacité du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le réglage des performances de Nginx peut être obtenu en ajustant le nombre de processus de travail, la taille du pool de connexion, l'activation des protocoles de compression GZIP et HTTP / 2 et en utilisant l'équilibrage du cache et de la charge. 1. Ajustez le nombre de processus de travail et la taille du pool de connexion: Worker_ProcessesAuto; Événements {Worker_Connections1024;}. 2. Activer la compression GZIP et le protocole http / 2: http {gzipon; serveur {écouter443sslhttp2;}}. 3. Utilisez l'optimisation du cache: http {proxy_cache_path / path / to / cachelevels = 1: 2k

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...
