| 120 | } |
| 121 | |
| 122 | func BenchmarkLRU_Rand_WithExpire(b *testing.B) { |
| 123 | l := lru.NewLRU[int64, int64](8192, nil, time.Millisecond*10) |
| 124 | |
| 125 | trace := make([]int64, b.N*2) |
| 126 | for i := 0; i < b.N*2; i++ { |
| 127 | trace[i] = getRand(b) % 32768 |
| 128 | } |
| 129 | |
| 130 | b.ResetTimer() |
| 131 | |
| 132 | var hit, miss int |
| 133 | for i := 0; i < 2*b.N; i++ { |
| 134 | if i%2 == 0 { |
| 135 | l.Add(trace[i], trace[i]) |
| 136 | } else { |
| 137 | if _, ok := l.Get(trace[i]); ok { |
| 138 | hit++ |
| 139 | } else { |
| 140 | miss++ |
| 141 | } |
| 142 | } |
| 143 | } |
| 144 | b.Logf("hit: %d miss: %d ratio: %f", hit, miss, float64(hit)/float64(hit+miss)) |
| 145 | } |
| 146 | |
| 147 | func BenchmarkLRU_Freq_WithExpire(b *testing.B) { |
| 148 | l := lru.NewLRU[int64, int64](8192, nil, time.Millisecond*10) |