Improved tokenizer benchmarks
This commit is contained in:
parent
98f5f021f0
commit
6852cbb24e
@ -1,15 +1,26 @@
|
|||||||
package token_test
|
package token_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"git.akyoto.dev/cli/q/src/build/token"
|
"git.akyoto.dev/cli/q/src/build/token"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BenchmarkTokenize(b *testing.B) {
|
func BenchmarkLines(b *testing.B) {
|
||||||
input := []byte("hello := 123\nworld := 456")
|
b.Run("__1", bench(1))
|
||||||
|
b.Run("_10", bench(10))
|
||||||
|
b.Run("100", bench(100))
|
||||||
|
}
|
||||||
|
|
||||||
|
func bench(n int) func(b *testing.B) {
|
||||||
|
line := []byte("hello := 123\n")
|
||||||
|
|
||||||
|
return func(b *testing.B) {
|
||||||
|
input := bytes.Repeat(line, n)
|
||||||
|
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
token.Tokenize(input)
|
token.Tokenize(input)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user