pool_test.go 717 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package handler
  2. import (
  3. "testing"
  4. )
  5. // go test -bench=. -benchmem
  6. // 去除数据头
  7. func BenchmarkHeaderCopy(b *testing.B) {
  8. l := 1500
  9. for i := 0; i < b.N; i++ {
  10. b.StopTimer()
  11. pl := getPayload()
  12. // 初始化数据
  13. pl.Data = pl.Data[:l]
  14. b.StartTimer()
  15. dataLen := l - 8
  16. copy(pl.Data, pl.Data[8:8+dataLen])
  17. // 更新切片长度
  18. pl.Data = pl.Data[:dataLen]
  19. b.StopTimer()
  20. putPayload(pl)
  21. }
  22. }
  23. func BenchmarkHeaderAppend(b *testing.B) {
  24. l := 1500
  25. for i := 0; i < b.N; i++ {
  26. b.StopTimer()
  27. pl := getPayload()
  28. // 初始化数据
  29. pl.Data = pl.Data[:l]
  30. b.StartTimer()
  31. dataLen := l - 8
  32. pl.Data = append(pl.Data[:0], pl.Data[:8+dataLen]...)
  33. b.StopTimer()
  34. putPayload(pl)
  35. }
  36. }