...

Source file src/github.com/andybalholm/cascadia/benchmark_test.go

Documentation: github.com/andybalholm/cascadia

     1  package cascadia
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"golang.org/x/net/html"
     8  )
     9  
    10  func MustParseHTML(doc string) *html.Node {
    11  	dom, err := html.Parse(strings.NewReader(doc))
    12  	if err != nil {
    13  		panic(err)
    14  	}
    15  	return dom
    16  }
    17  
    18  var selector = MustCompile(`div.matched`)
    19  var doc = `<!DOCTYPE html>
    20  <html>
    21  <body>
    22  <div class="matched">
    23    <div>
    24      <div class="matched"></div>
    25      <div class="matched"></div>
    26      <div class="matched"></div>
    27      <div class="matched"></div>
    28      <div class="matched"></div>
    29      <div class="matched"></div>
    30      <div class="matched"></div>
    31      <div class="matched"></div>
    32      <div class="matched"></div>
    33      <div class="matched"></div>
    34      <div class="matched"></div>
    35      <div class="matched"></div>
    36      <div class="matched"></div>
    37      <div class="matched"></div>
    38      <div class="matched"></div>
    39      <div class="matched"></div>
    40    </div>
    41  </div>
    42  </body>
    43  </html>
    44  `
    45  var dom = MustParseHTML(doc)
    46  
    47  func BenchmarkMatchAll(b *testing.B) {
    48  	var matches []*html.Node
    49  	for i := 0; i < b.N; i++ {
    50  		matches = selector.MatchAll(dom)
    51  	}
    52  	_ = matches
    53  }
    54  

View as plain text