package goquery import ( "testing" ) func BenchmarkEach(b *testing.B) { var tmp, n int b.StopTimer() sel := DocW().Find("td") f := func(i int, s *Selection) { tmp++ } b.StartTimer() for i := 0; i < b.N; i++ { sel.Each(f) if n == 0 { n = tmp } } b.Logf("Each=%d", n) } func BenchmarkMap(b *testing.B) { var tmp, n int b.StopTimer() sel := DocW().Find("td") f := func(i int, s *Selection) string { tmp++ return string(tmp) } b.StartTimer() for i := 0; i < b.N; i++ { sel.Map(f) if n == 0 { n = tmp } } b.Logf("Map=%d", n) } func BenchmarkEachWithBreak(b *testing.B) { var tmp, n int b.StopTimer() sel := DocW().Find("td") f := func(i int, s *Selection) bool { tmp++ return tmp < 10 } b.StartTimer() for i := 0; i < b.N; i++ { tmp = 0 sel.EachWithBreak(f) if n == 0 { n = tmp } } b.Logf("Each=%d", n) }