lexical_test.go 930 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package xsql
  2. import (
  3. "bytes"
  4. "strings"
  5. "testing"
  6. )
  7. var l = 10000
  8. func BenchmarkBytesBufferToString(b *testing.B) {
  9. buf := bytes.Buffer{}
  10. for i := 0; i < b.N; i++ {
  11. for j := 0; j < l; j++ {
  12. _, err := buf.WriteRune('1')
  13. if err != nil {
  14. b.Fatal(err)
  15. }
  16. }
  17. str := buf.String()
  18. if len(str) != l {
  19. b.Fatal()
  20. }
  21. buf.Reset()
  22. }
  23. }
  24. func BenchmarkStringBuilderToString(b *testing.B) {
  25. buf := strings.Builder{}
  26. for i := 0; i < b.N; i++ {
  27. for j := 0; j < l; j++ {
  28. _, err := buf.WriteRune('1')
  29. if err != nil {
  30. b.Fatal(err)
  31. }
  32. }
  33. str := buf.String()
  34. if len(str) != l {
  35. b.Fatal()
  36. }
  37. buf.Reset()
  38. }
  39. }
  40. func BenchmarkBytesBufferToStringWithNewBuffer(b *testing.B) {
  41. for i := 0; i < b.N; i++ {
  42. var buf bytes.Buffer
  43. for j := 0; j < l; j++ {
  44. _, err := buf.WriteRune('1')
  45. if err != nil {
  46. b.Fatal(err)
  47. }
  48. }
  49. str := buf.String()
  50. if len(str) != l {
  51. b.Fatal()
  52. }
  53. }
  54. }