MCPcopy Create free account
hub / github.com/antchfx/xpath / BenchmarkLoadingCacheCapped_MultiThread

Function BenchmarkLoadingCacheCapped_MultiThread

cache_test.go:89–118  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

87}
88
89func BenchmarkLoadingCacheCapped_MultiThread(b *testing.B) {
90 rand.Seed(benchLoadingCacheRandSeed)
91 c := NewLoadingCache(
92 func(key interface{}) (interface{}, error) {
93 return key, nil
94 }, benchLoadingCacheCap)
95 errCh := make(chan error, benchLoadingCacheConcurrency)
96 defer close(errCh)
97 for i := 0; i < benchLoadingCacheConcurrency; i++ {
98 go func() {
99 for j := 0; j < b.N; j++ {
100 k := rand.Intn(benchLoadingCacheKeyRange)
101 v, _ := c.get(k)
102 if k != v {
103 errCh <- fmt.Errorf("key:%q != value:%q", k, v)
104 return
105 }
106 }
107 errCh <- nil
108 return
109 }()
110 }
111 for i := 0; i < benchLoadingCacheConcurrency; i++ {
112 if err := <-errCh; err != nil {
113 b.Fatal(err)
114 }
115 }
116
117 b.Logf("N=%d, concurrency=%d, reset=%d", b.N, benchLoadingCacheConcurrency, c.reset)
118}
119
120func BenchmarkLoadingCacheNoCap_SingleThread(b *testing.B) {
121 rand.Seed(benchLoadingCacheRandSeed)

Callers

nothing calls this directly

Calls 2

NewLoadingCacheFunction · 0.85
getMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…