Skip to content

Instantly share code, notes, and snippets.

@DeedleFake
Created August 15, 2024 08:08
Show Gist options
  • Select an option

  • Save DeedleFake/f82c1066d92a7e6e8ba00324e9a47812 to your computer and use it in GitHub Desktop.

Select an option

Save DeedleFake/f82c1066d92a7e6e8ba00324e9a47812 to your computer and use it in GitHub Desktop.
Very simple benchmark of the new Go 1.23 iterators.
package iter_test
import (
"bufio"
"io"
"iter"
"strings"
"testing"
)
func BenchmarkScanner(b *testing.B) {
for range b.N {
s := bufio.NewScanner(strings.NewReader(input))
for s.Scan() {
_ = s.Bytes()
}
// Purposefully ignoring error to match.
}
}
func BenchmarkSeq(b *testing.B) {
for range b.N {
for line := range scanSeq(strings.NewReader(input)) {
_ = line
}
}
}
func scanSeq(r io.Reader) iter.Seq[[]byte] {
s := bufio.NewScanner(r)
return func(yield func([]byte) bool) {
for s.Scan() {
if !yield(s.Bytes()) {
return
}
}
}
}
const input = `testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttesttesttesttesttesttesttesttesttest
testtesttesttest`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment