@@ -300,69 +300,32 @@ func BenchmarkLatencySelector(b *testing.B) {
300300}
301301
302302func BenchmarkSelector_Sharded (b * testing.B ) {
303- for _ , bcase := range []struct {
304- name string
305- serversHook func (servers []Server )
306- }{
307- {
308- name : "AllFit" ,
309- serversHook : func (servers []Server ) {},
310- },
311- {
312- name : "AllButOneFit" ,
313- serversHook : func (servers []Server ) {
314- servers [0 ].Kind = LoadBalancer
315- },
316- },
317- {
318- name : "HalfFit" ,
319- serversHook : func (servers []Server ) {
320- for i := 0 ; i < len (servers ); i += 2 {
321- servers [i ].Kind = LoadBalancer
322- }
323- },
324- },
325- {
326- name : "OneFit" ,
327- serversHook : func (servers []Server ) {
328- for i := 1 ; i < len (servers ); i ++ {
329- servers [i ].Kind = LoadBalancer
330- }
331- },
332- },
333- } {
334- bcase := bcase
335-
336- b .Run (bcase .name , func (b * testing.B ) {
337- subject := readpref .Primary ()
338-
339- s := Server {
340- Addr : address .Address ("localhost:27017" ),
341- HeartbeatInterval : time .Duration (10 ) * time .Second ,
342- LastWriteTime : time .Date (2017 , 2 , 11 , 14 , 0 , 0 , 0 , time .UTC ),
343- LastUpdateTime : time .Date (2017 , 2 , 11 , 14 , 0 , 2 , 0 , time .UTC ),
344- Kind : Mongos ,
345- WireVersion : & VersionRange {Min : 0 , Max : 5 },
346- }
347- servers := make ([]Server , 100 )
348- for i := 0 ; i < len (servers ); i ++ {
349- servers [i ] = s
350- }
351- bcase .serversHook (servers )
352- c := Topology {
353- Kind : Sharded ,
354- Servers : servers ,
355- }
303+ subject := readpref .Primary ()
356304
357- b .ResetTimer ()
358- b .RunParallel (func (p * testing.PB ) {
359- b .ReportAllocs ()
360- for p .Next () {
361- _ , _ = ReadPrefSelector (subject ).SelectServer (c , c .Servers )
362- }
363- })
364- })
305+ s := Server {
306+ Addr : address .Address ("localhost:27017" ),
307+ HeartbeatInterval : time .Duration (10 ) * time .Second ,
308+ LastWriteTime : time .Date (2017 , 2 , 11 , 14 , 0 , 0 , 0 , time .UTC ),
309+ LastUpdateTime : time .Date (2017 , 2 , 11 , 14 , 0 , 2 , 0 , time .UTC ),
310+ Kind : Mongos ,
311+ WireVersion : & VersionRange {Min : 0 , Max : 5 },
312+ }
313+ servers := make ([]Server , 100 )
314+ for i := 0 ; i < len (servers ); i ++ {
315+ servers [i ] = s
316+ }
317+ servers [0 ].Kind = LoadBalancer
318+ c := Topology {
319+ Kind : Sharded ,
320+ Servers : servers ,
365321 }
322+
323+ b .ResetTimer ()
324+ b .RunParallel (func (p * testing.PB ) {
325+ for p .Next () {
326+ _ , _ = ReadPrefSelector (subject ).SelectServer (c , c .Servers )
327+ }
328+ })
366329}
367330
368331func TestSelector_Single (t * testing.T ) {
0 commit comments