Puffern von Daten variabler Länge in Golang
In einem Szenario, in dem Sie einen Puffer benötigen, um eingehende Daten variabler Länge zu verarbeiten, wird der vorgestellte Ansatz vorgestellt in der Frage verwendet einen Puffer fester Größe, was möglicherweise zu ineffizienten Lesevorgängen führt. Betrachten Sie die folgende verbesserte Lösung:
<code class="go">import ( "bytes" "fmt" "io" ) func readVariableLengthData(conn io.Reader) ([]byte, error) { buf := new(bytes.Buffer) if _, err := io.Copy(buf, conn); err != nil { return nil, err } return buf.Bytes(), nil }</code>
Diese Lösung verwendet einen bytes.Buffer, der ein dynamisches Wachstum des Puffers nach Bedarf ermöglicht. So funktioniert dieser verbesserte Ansatz:
Mit diesem überarbeiteten Ansatz können Sie Daten variabler Länge verarbeiten streamt ordnungsgemäß, ohne Speicher für ungenutzten Pufferspeicher zu verschwenden.
Das obige ist der detaillierte Inhalt vonWie können Daten variabler Länge in Golang effizient gepuffert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!