Go Wiki:基準測試

這些基準測試是從社群收集而來,用於衡量對 Go 核心(編譯器、執行時期、垃圾回收程式和函式庫)變更的影響。它們應具備下列屬性

這些基準會隨著時間而改變,這是正常的。它們預期的用途是針對建議變更進行效能測試;幾何平均是否較好,是否有任何基準大幅變差?

每個基準的資訊包含(或應該包含)

簡短名稱 註解 go get 路徑 基準正規表示法 聯絡人
ajstarks_deck_generate github.com/ajstarks/deck/generate Benchmark(Polygon|Arc)
benhoyt_goawk github.com/benhoyt/goawk/interp BenchmarkR
bindata github.com/kevinburke/go-bindata Benchmark
capnproto2 zombiezen.com/go/capnproto2/ Benchmark(TextMovementBetweenSegments|Growth_MultiSegment)
cespare_mph github.com/cespare/mph BenchmarkBuild
cespare_xxhash github.com/cespare/xxhash BenchmarkHashes/xxhash-string,n=10_MB
ericlagergren_decimal github.com/ericlagergren/decimal/benchmarks BenchmarkPi_decimal_Go_9
ethereum_bitutil github.com/ethereum/go-ethereum/common/bitutil Benchmark(BaseTest2KB|FastTest2KB|Encoding4KBVerySparse)
ethereum_core github.com/ethereum/go-ethereum/core BenchmarkChainRead_full_10k
ethereum_corevm github.com/ethereum/go-ethereum/core/vm BenchmarkOpDiv128
ethereum_ecies github.com/ethereum/go-ethereum/crypto/ecies BenchmarkGenSharedKeyP256
ethereum_ethash github.com/ethereum/go-ethereum/consensus/ethash BenchmarkHashimotoLight
ethereum_sha3 github.com/ethereum/go-ethereum/crypto/sha3 BenchmarkSha3_224_MTU
ethereum_storage github.com/ethereum/go-ethereum/swarm/storage BenchmarkJoin_8
ethereum_trie github.com/ethereum/go-ethereum/trie Benchmark
gonum_blas_native gonum.org/v1/gonum/blas/gonum Benchmark(DasumMediumUnitaryInc|Dnrm2MediumPosInc)
gonum_community gonum.org/v1/gonum/graph/community/ BenchmarkLouvainDirectedMultiplex
gonum_lapack_native gonum.org/v1/gonum/lapack/gonum BenchmarkDgeev/Circulant10
gonum_mat gonum.org/v1/gonum/mat Benchmark(MulWorkspaceDense1000Hundredth|ScaleVec10000Inc20)
gonum_path gonum.org/v1/gonum/graph/path/ Benchmark(AStarUndirectedmallWorld_10_2_2_2_Heur|Dominators/nested_if_n256)
gonum_topo gonum.org/v1/gonum/graph/topo/ Benchmark(TarjanSCCGnp_1000_half|TarjanSCCGnp_10_tenth)
gonum_traverse gonum.org/v1/gonum/graph/traverse/ BenchmarkWalkAllBreadthFirstGnp_(10|1000)_tenth
gtank_blake2s github.com/gtank/blake2s BenchmarkHash8K
gtank_ed25519 github.com/gtank/ed25519 Benchmark(IsOnCurve|ScalarMult)
hugo_helpers github.com/gohugoio/hugo/helpers Benchmark(StripHTML|ReaderContains)
hugo_hugolib github.com/gohugoio/hugo/hugolib BenchmarkParsePage
hugo_hugolib_sitebuilding github.com/gohugoio/hugo/hugolib BenchmarkSiteBuilding/YAML,num_pages=10,num_tags=10,tags_per_page=20,shortcodes,render-12
k8s_api k8s.io/kubernetes/pkg/api/testing BenchmarkEncodeCodecFromInternalProtobuf
k8s_schedulercache k8s.io/kubernetes/pkg/scheduler/cache BenchmarkList1kNodes30kPods
minio github.com/minio/minio/cmd BenchmarkGetObject5MbFS
nelsam_gxui_interval github.com/nelsam/gxui/interval Benchmark
pilosa_bitmaps 基準測試在 roaring/ 子目錄中 github.com/pilosa/pilosa BenchmarkBitmap_IntersectionCount jaffee@pilosa.com
semver github.com/Masterminds/semver BenchmarkValidateVersionTildeFail
spexs2 github.com/egonelbre/spexs2/_benchmark/ BenchmarkRun/10k/1
uber_zap go.uber.org/zap/benchmarks BenchmarkAddingFields/(Zap.Sugar|^[ais])
uuid github.com/satori/go.uuid/ Benchmark(NewV5|MarshalToString)

有一個 基準測試執行器,它自動化在各種(使用者定義)組態下下載、建置和執行這些基準測試。在 Linux 上的基準測試雜訊可以用 perflock 稍微減少。

已經提出了一些建議,但到目前為止都還沒有通過(因為取得、建置或雜訊問題)

簡短名稱 註解 go get 路徑 基準正規表示法 聯絡人
eolian_dsp buddin.us/eolian/dsp Benchmark
ethereum_whisperv5 github.com/ethereum/go-ethereum/whisper/whisperv5 Benchmark
kanzi github.com/flanglet/kanzi/go/src/kanzi/benchmark Benchmark

此內容是 Go Wiki 的一部分。