Go パフォーマンス ベンチマークでカスタム関数ベンチマークを作成する: テスト パッケージによって提供される B タイプを使用してカスタム関数を作成します。関数の実行時間を測定するには、タイプ B の Record メソッドを使用します。 go test -bench -benchmem コマンドを使用してベンチマークを実行します。カスタム ベンチマーク関数を通じて、Go アプリケーションのパフォーマンスを特定し、向上させることができます。
Go 言語でのカスタム関数のパフォーマンス ベンチマーク
パフォーマンス ベンチマークは、Go アプリケーションを特定して改善するために重要です。ベンチマークを使用すると、コードの特定のブロックの実行時間を測定し、この情報に基づいて最適化できます。
カスタム ベンチマーク関数の作成
Go でカスタム ベンチマーク関数を作成するには、testing
パッケージ B## によって提供される を使用します。 # タイプ。
B タイプは、ベンチマーク結果を測定およびレポートするためのメソッドを提供します。
import "testing" // BenchmarkAddNumbers 为添加 numbers 切片中数字的函数提供基准测试。 func BenchmarkAddNumbers(b *testing.B) { numbers := []int{1, 2, 3, 4, 5} for i := 0; i < b.N; i++ { sum := 0 for _, number := range numbers { sum += number } } }
使用法
ベンチマークを実行するには、go test -bench コマンドを使用します:
go test -bench . -benchmem
練習ケース
実際のケースを使用して、カスタム ベンチマーク関数を使用してコードを最適化する方法を説明します。func AddNumbers(numbers []int) int { sum := 0 for _, number := range numbers { sum += number } return sum }ベンチマークを実行すると、
AddNumbers 関数のパフォーマンスが遅いことがわかりました。
go test -bench . -benchmem BenchmarkAddNumbers-8 300000000 4.44 ns/op 0 B/op 0 allocs/opこの関数は、
sum 組み込み関数を使用して最適化できます:
func AddNumbersOptimized(numbers []int) int { return sum(numbers) }ベンチマークを実行して、最適化された関数を検証します:
go test -bench . -benchmem BenchmarkAddNumbers-8 2000000000 0.57 ns/op 0 B/op 0 allocs/op BenchmarkAddNumbersOptimized-8 3000000000 0.68 ns/op 0 B/op 0 allocs/opご覧のとおり、最適化された関数
AddNumbersOptimized のパフォーマンスが大幅に向上しています。
以上がgolangカスタム関数実装のパフォーマンスベンチマークテストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。