diff --git a/pdu/pdu_test.go b/pdu/pdu_test.go index f3e6561..bea4f09 100644 --- a/pdu/pdu_test.go +++ b/pdu/pdu_test.go @@ -450,3 +450,43 @@ func TestSizeReturns16(t *testing.T) { t.Errorf("Expected size to be 16, got %d", p.Size()) } } + +// region benchmarks + +// With buffer pool +func BenchmarkEncode(b *testing.B) { + p := &PDU_HEADER{ + command_length: 16, + command_id: 1, + command_status: 0, + sequence_number: 12345, + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + p.Encode() + } +} + +// Without buffer pool +func BenchmarkEncodeInto(b *testing.B) { + p := &PDU_HEADER{ + command_length: 16, + command_id: 1, + command_status: 0, + sequence_number: 12345, + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + buf := make([]uint8, 16) + p.EncodeInto(&buf) + } +} + +func BenchmarkDecode(b *testing.B) { + p := &PDU_HEADER{} + data := []uint8{0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3} + b.ResetTimer() + for i := 0; i < b.N; i++ { + p.Decode(data) + } +} \ No newline at end of file