首頁 >後端開發 >Golang >Go test'-run -”標誌執行測試的速度要快得多

Go test'-run -”標誌執行測試的速度要快得多

王林
王林轉載
2024-02-09 19:21:08417瀏覽

Go test“-run -”标志执行测试的速度要快得多

php小編蘋果在介紹測試框架Go test時指出,使用"-run -"標誌可以大大提高執行測試的速度。這個標誌告訴Go test只執行測試函數,而不執行任何範例程式碼。這樣一來,測試框架就可以跳過不必要的初始化和清理過程,從而加快測試的執行速度。對於需要頻繁執行測試的開發者來說,這個技巧非常有用,能夠提高工作效率。

問題內容

我正在查看 https://github.com/roaringbitmap/roaring 的一些基準測試

使用 -run - 執行特定基準測試時(如評論中所述): go test -bench benchmarknexts -benchmem -run - 似乎執行得更快,至少在沒有-run - 的情況下運行它似乎有一些5 秒的初始開銷,這也被繪製出來:

==roaring==
{1,2,3,4,5,100,1000}
{3,4,1000}
{}
Cardinality:  7
Contains 3?  true
1
3
4
5
1000

Wrote  22  bytes
I wrote the content to a byte stream and read it back.
size before run optimize: 1810 bytes, and after: 38 bytes.

由於 -run 標誌基於正規表示式模式運行測試,似乎這裡排除了某些內容,但兩者運行相同的測試到底是什麼,唯一的區別是初始開銷。

解決方法

go test“-run -”標誌執行測試的速度要快得多

這就是預期的結果。當您不執行任何測試時,速度會更快。

要查看正在執行的內容,請將 -v 選項新增至 go test 執行。

不執行測試:

go clean -testcache && go test -bench benchmarknexts -benchmem -run - -v

執行所有測試:

go clean -testcache && go test -bench benchmarknexts -benchmem -v`

或者,由於 -run . 相當於所有測試,

go clean -testcache && go test -bench benchmarknexts -benchmem -run . -v

go 是一個管理 go 原始碼的工具。

測試標誌

-run regexp
    Run only those tests, examples, and fuzz tests matching the regular
    expression.

-v
    Verbose output: log all tests as they are run.

建置並測試快取

go 指令也會快取成功的套件測試結果。有關詳細信息,請參閱“幫助測試”。執行「go clean -testcache」會刪除所有快取的測試結果(但不刪除快取的建置結果)。

以上是Go test'-run -”標誌執行測試的速度要快得多的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除