You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
func BenchmarkIntIntMapIterKeys(b *testing.B) {
var j, v, sum int64
var ok bool
m := New(2048, 0.60)
fillIntIntMap(m)
for i := 0; i < b.N; i++ {
sum = int64(0)
for j = range m.Keys() {
if v, ok = m.Get(j); ok {
sum += j
sum += v
}
}
//log.Println("int int sum:", sum)
}
}
func BenchmarkIntIntMapIterItems(b *testing.B) {
var j, v, sum int64
var kv [2]int64
m := New(2048, 0.60)
fillIntIntMap(m)
for i := 0; i < b.N; i++ {
sum = int64(0)
for kv = range m.Items() {
j = kv[0]
v = kv[1]
sum += j
sum += v
}
//log.Println("int int sum:", sum)
}
}
func BenchmarkIntIntMapIterNoChan(b *testing.B) {
var sum int64
m := New(2048, 0.60)
fillIntIntMap(m)
for i := 0; i < b.N; i++ {
sum = int64(0)
m.Items2(func(k, v int64) {
sum += k
sum += v
})
//log.Println("int int sum:", sum)
}
}
func BenchmarkStdMapIter(b *testing.B) {
var j, v, sum int64
m := make(map[int64]int64, 2048)
fillStdMap(m)
for i := 0; i < b.N; i++ {
sum = int64(0)
for j, v = range m {
sum += j
sum += v
}
//log.Println("map sum:", sum)
}
}
If I understand correctly, you're showing that iterating over a(n intint)map using a channel is much slower.
care to make a PR with Items2? Perhaps each can name it Each ?
The text was updated successfully, but these errors were encountered: