Penanda aras prestasi dalam ujian fungsi Golang

WBOY
Lepaskan: 2024-04-12 18:15:02
asal
557 orang telah melayarinya

Penanda aras prestasi dalam Go mengukur kecekapan fungsi dan dilaksanakan dengan menulis kod penanda aras dalam fungsi bermula dengan Penanda Aras. Jenis testing.B menyediakan sifat ResetTimer(), StopTimer(), dan N untuk mengawal tingkah laku penanda aras. Sebagai contoh, penanda aras bagi fungsi yang mengira nombor Fibonacci menunjukkan bahawa melaksanakan Fib(30) mengambil masa kira-kira 2,767,425 nanosaat. Optimumkan kod penanda aras untuk mengelakkan overhed dan jalankan beberapa kali untuk hasil yang tepat.

Golang 函数测试中的性能基准测试

Tanda aras prestasi dalam ujian fungsi Go

Tanda aras prestasi ialah alat penting untuk mengukur kecekapan fungsi. Dalam Go, pakej testing menyediakan kefungsian untuk menanda aras masa pelaksanaan fungsi. testing 包提供了针对函数执行时间的基准测试功能。

编写性能基准测试

编写一个性能基准测试需要创建一个以 Benchmark 开头的函数,后面跟上要测试的函数名:

func BenchmarkFib(b *testing.B) {
    // 基准测试代码
}
Salin selepas log masuk

使用 testing.B

testing.B 类型提供以下方法来控制基准测试:

  • ResetTimer(): 重置计时器。
  • StopTimer(): 停止计时器并记录时间。
  • N: 执行基准测试的次数。

实战案例

让我们对一个计算斐波那契数的函数进行基准测试:

func Fib(n int) int {
    if n <= 1 {
        return n
    }
    return Fib(n-1) + Fib(n-2)
}

func BenchmarkFib(b *testing.B) {
    for i := 0; i < b.N; i++ {
        Fib(30)
    }
}
Salin selepas log masuk

在终端中运行测试:

go test -bench=.
Salin selepas log masuk

输出将如下所示:

BenchmarkFib  2767425 ns/op
Salin selepas log masuk

这意味着用 30 作为参数执行 Fib 函数的基准测试需要大约 2,767,425 纳秒(2767 毫秒)。

提示

  • 使用 -benchmem
  • Menulis penanda aras prestasi
  • Menulis penanda aras prestasi memerlukan mencipta fungsi bermula dengan Tanda Aras, diikuti dengan nama fungsi yang akan diuji:
rrreee🎜🎜Gunakan ujian.B🎜🎜 Jenis 🎜testing.B menyediakan kaedah berikut untuk mengawal penanda aras: 🎜
    🎜ResetTimer(): Tetapkan semula pemasa. 🎜🎜StopTimer(): Hentikan pemasa dan rakam masa. 🎜🎜N: Bilangan kali ujian penanda aras dilakukan. . kod>Fib berfungsi sebagai parameter mengambil masa kira-kira 2,767,425 nanosaat (2767 milisaat). 🎜🎜🎜Petua🎜🎜
      🎜Gunakan bendera -benchmem untuk mengukur peruntukan memori penanda aras. 🎜🎜Optimumkan kod penanda aras untuk mengelakkan overhed seperti mencipta pembolehubah yang tidak perlu. 🎜🎜Jalankan penanda aras beberapa kali untuk hasil yang lebih tepat. 🎜🎜

Atas ialah kandungan terperinci Penanda aras prestasi dalam ujian fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!