append_entries_request_test.go 926 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package raft
  2. import (
  3. "bytes"
  4. "testing"
  5. )
  6. func BenchmarkAppendEntriesRequestEncoding(b *testing.B) {
  7. req, tmp := createTestAppendEntriesRequest(2000)
  8. b.ResetTimer()
  9. for i := 0; i < b.N; i++ {
  10. var buf bytes.Buffer
  11. req.encode(&buf)
  12. }
  13. b.SetBytes(int64(len(tmp)))
  14. }
  15. func BenchmarkAppendEntriesRequestDecoding(b *testing.B) {
  16. req, buf := createTestAppendEntriesRequest(2000)
  17. b.ResetTimer()
  18. for i := 0; i < b.N; i++ {
  19. req.decode(bytes.NewReader(buf))
  20. }
  21. b.SetBytes(int64(len(buf)))
  22. }
  23. func createTestAppendEntriesRequest(entryCount int) (*AppendEntriesRequest, []byte) {
  24. entries := make([]*LogEntry, 0)
  25. for i := 0; i < entryCount; i++ {
  26. command := &DefaultJoinCommand{Name: "localhost:1000"}
  27. entry, _ := newLogEntry(nil, 1, 2, command)
  28. entries = append(entries, entry)
  29. }
  30. req := newAppendEntriesRequest(1, 1, 1, 1, "leader", entries)
  31. var buf bytes.Buffer
  32. req.encode(&buf)
  33. return req, buf.Bytes()
  34. }