mirror of https://github.com/golang/go.git
runtime: add timing test for iterate/delete map idiom.
LGTM=bradfitz, iant R=iant, bradfitz CC=golang-codereviews https://golang.org/cl/140510043
This commit is contained in:
parent
b78d7b75c7
commit
689dc60c14
|
|
@ -140,4 +140,22 @@ func main() {
|
|||
m[complex(float64(i), float64(i))] = 1
|
||||
}
|
||||
})
|
||||
|
||||
// ~70ms on a 1.6GHz Zeon.
|
||||
// The iterate/delete idiom currently takes expected
|
||||
// O(n lg n) time. Fortunately, the checkLinear test
|
||||
// leaves enough wiggle room to include n lg n time
|
||||
// (it actually tests for O(n^log_2(3)).
|
||||
checkLinear("iterdelete", 10000, func(n int) {
|
||||
m := map[int]int{}
|
||||
for i := 0; i < n; i++ {
|
||||
m[i] = i
|
||||
}
|
||||
for i := 0; i < n; i++ {
|
||||
for k := range m {
|
||||
delete(m, k)
|
||||
break
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue