• Keith Randall's avatar
    runtime: on bigger maps, start iterator at a random bucket. · 55c458e0
    Keith Randall authored
    This change brings the iter/delete pattern down to O(n lgn) from O(n^2).
    
    Fixes #8412.
    
    before:
    BenchmarkMapPop100	   50000	     32498 ns/op
    BenchmarkMapPop1000	     500	   3244851 ns/op
    BenchmarkMapPop10000	       5	 270276855 ns/op
    
    after:
    BenchmarkMapPop100	  100000	     16169 ns/op
    BenchmarkMapPop1000	    5000	    300416 ns/op
    BenchmarkMapPop10000	     300	   5990814 ns/op
    
    LGTM=iant
    R=golang-codereviews, iant, khr
    CC=golang-codereviews
    https://golang.org/cl/141270043
    55c458e0
map_test.go 10.4 KB