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
測試標誌
-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中文網其他相關文章!