bench_expand_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package goquery
  2. import (
  3. "testing"
  4. )
  5. func BenchmarkAdd(b *testing.B) {
  6. var n int
  7. b.StopTimer()
  8. sel := DocB().Find("dd")
  9. b.StartTimer()
  10. for i := 0; i < b.N; i++ {
  11. if n == 0 {
  12. n = sel.Add("h2[title]").Length()
  13. } else {
  14. sel.Add("h2[title]")
  15. }
  16. }
  17. b.Logf("Add=%d", n)
  18. }
  19. func BenchmarkAddSelection(b *testing.B) {
  20. var n int
  21. b.StopTimer()
  22. sel := DocB().Find("dd")
  23. sel2 := DocB().Find("h2[title]")
  24. b.StartTimer()
  25. for i := 0; i < b.N; i++ {
  26. if n == 0 {
  27. n = sel.AddSelection(sel2).Length()
  28. } else {
  29. sel.AddSelection(sel2)
  30. }
  31. }
  32. b.Logf("AddSelection=%d", n)
  33. }
  34. func BenchmarkAddNodes(b *testing.B) {
  35. var n int
  36. b.StopTimer()
  37. sel := DocB().Find("dd")
  38. sel2 := DocB().Find("h2[title]")
  39. nodes := sel2.Nodes
  40. b.StartTimer()
  41. for i := 0; i < b.N; i++ {
  42. if n == 0 {
  43. n = sel.AddNodes(nodes...).Length()
  44. } else {
  45. sel.AddNodes(nodes...)
  46. }
  47. }
  48. b.Logf("AddNodes=%d", n)
  49. }
  50. func BenchmarkAndSelf(b *testing.B) {
  51. var n int
  52. b.StopTimer()
  53. sel := DocB().Find("dd").Parent()
  54. b.StartTimer()
  55. for i := 0; i < b.N; i++ {
  56. if n == 0 {
  57. n = sel.AndSelf().Length()
  58. } else {
  59. sel.AndSelf()
  60. }
  61. }
  62. b.Logf("AndSelf=%d", n)
  63. }