Maison  >  Article  >  développement back-end  >  Comment faire du benchmark en Go ?

Comment faire du benchmark en Go ?

WBOY
WBOYoriginal
2023-05-11 16:09:121458parcourir

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 :

  1. 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.

  1. 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.

  1. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn