Buat penanda aras fungsi tersuai dalam penanda aras Go Performance: Buat fungsi tersuai menggunakan jenis B yang disediakan oleh pakej ujian. Gunakan kaedah Rekod jenis B untuk mengukur masa pelaksanaan dalam fungsi. Jalankan penanda aras menggunakan perintah go test -bench . Melalui fungsi penanda aras tersuai, anda boleh mengenal pasti dan meningkatkan prestasi aplikasi Go anda.
Tanda Aras Prestasi Fungsi Tersuai dalam Bahasa Go
Tanda aras prestasi adalah penting untuk mengenal pasti dan menambah baik aplikasi Go. Penandaarasan membolehkan anda mengukur masa pelaksanaan blok kod tertentu dan mengoptimumkan berdasarkan maklumat ini.
Buat fungsi penanda aras tersuai
Untuk mencipta fungsi penanda aras tersuai dalam Go, gunakan jenis B
yang disediakan oleh pakej testing
. Jenis B
menyediakan kaedah untuk mengukur dan melaporkan hasil penanda aras. 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
rrreee
go test -bench
: 🎜rrreee🎜🎜Satu kes praktikal🎜🎜🎜Mari kami menggambarkan cara menggunakan penanda aras tersuai kes praktikal kod pengoptimuman fungsi ujian. 🎜rrreee🎜Dengan menjalankan penanda aras, kami mendapati bahawa fungsi AddNumbers
mempunyai prestasi yang perlahan. 🎜rrreee🎜Kami boleh mengoptimumkan fungsi ini dengan menggunakan sum
fungsi terbina dalam: 🎜rrreee🎜Jalankan penanda aras untuk mengesahkan fungsi yang dioptimumkan: 🎜rrreee🎜Seperti yang anda lihat, fungsi yang dioptimumkan Atas ialah kandungan terperinci Ujian penanda aras prestasi pelaksanaan fungsi tersuai golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!