func benchmarkIterator(b *testing.B, opt influxql.IteratorOptions, pointN int) { e := MustInitBenchmarkEngine(pointN) b.ResetTimer() b.ReportAllocs() for i := 0; i < b.N; i++ { itr, err := e.CreateIterator(opt) if err != nil { b.Fatal(err) } influxql.DrainIterator(itr) } }
func benchmarkCallIterator(b *testing.B, opt influxql.IteratorOptions, pointN int) { b.ReportAllocs() for i := 0; i < b.N; i++ { // Create a lightweight point generator. p := influxql.FloatPoint{Name: "cpu", Value: 100} input := FloatPointGenerator{ N: pointN, Fn: func(i int) *influxql.FloatPoint { return &p }, } // Execute call against input. itr, err := influxql.NewCallIterator(&input, opt) if err != nil { b.Fatal(err) } influxql.DrainIterator(itr) } }
func benchmarkDistinctIterator(b *testing.B, pointN int) { b.ReportAllocs() for i := 0; i < b.N; i++ { // Create a lightweight point generator. p := influxql.FloatPoint{Name: "cpu"} input := FloatPointGenerator{ N: pointN, Fn: func(i int) *influxql.FloatPoint { p.Value = float64(i % 10) return &p }, } // Execute call against input. itr, err := influxql.NewDistinctIterator(&input, influxql.IteratorOptions{}) if err != nil { b.Fatal(err) } influxql.DrainIterator(itr) } }