Explorar o código

query: Avoid binary.Write in GetRoutingKey

That last one introspects the type dynamically, which is around 100x
slower than using the PutUint16 function directly.
Adrien Bustany %!s(int64=10) %!d(string=hai) anos
pai
achega
fea9edbc92
Modificáronse 1 ficheiros con 3 adicións e 1 borrados
  1. 3 1
      session.go

+ 3 - 1
session.go

@@ -542,7 +542,9 @@ func (q *Query) GetRoutingKey() ([]byte, error) {
 		if err != nil {
 			return nil, err
 		}
-		binary.Write(buf, binary.BigEndian, int16(len(encoded)))
+		lenBuf := []byte{0x00, 0x00}
+		binary.BigEndian.PutUint16(lenBuf, uint16(len(encoded)))
+		buf.Write(lenBuf)
 		buf.Write(encoded)
 		buf.WriteByte(0x00)
 	}