MCPcopy Create free account
hub / github.com/dlclark/regexp2 / BenchmarkStringIndexPrefixesFilter

Function BenchmarkStringIndexPrefixesFilter

stringprefixfilter_test.go:372–406  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

370}
371
372func BenchmarkStringIndexPrefixesFilter(b *testing.B) {
373 prefixes := []string{
374 "value00", "value01", "value02", "value03",
375 "value04", "value05", "value06", "value07",
376 "value08", "value09", "value10", "value11",
377 "value12", "value13", "value14", "victor",
378 }
379 input := strings.Repeat("zzzzzzzzzzzzzzzz", 4096) + "victor"
380
381 b.Run("compiled_ascii", func(b *testing.B) {
382 filter := stringIndexPrefixesFilter(prefixes, false, 5)
383 if filter == nil {
384 b.Fatal("expected filter")
385 }
386 b.ReportAllocs()
387 b.SetBytes(int64(len(input)))
388 for i := 0; i < b.N; i++ {
389 idx, ok := filter(input, 0)
390 if !ok || idx != len(input)-len("victor") {
391 b.Fatalf("filter = (%d, %v)", idx, ok)
392 }
393 }
394 })
395
396 b.Run("old_fallback", func(b *testing.B) {
397 b.ReportAllocs()
398 b.SetBytes(int64(len(input)))
399 for i := 0; i < b.N; i++ {
400 idx, ok := indexAnyPrefixFallback(input, 0, prefixes, false, 5)
401 if !ok || idx != len(input)-len("victor") {
402 b.Fatalf("filter = (%d, %v)", idx, ok)
403 }
404 }
405 })
406}

Callers

nothing calls this directly

Calls 2

indexAnyPrefixFallbackFunction · 0.85

Tested by

no test coverage detected