Golang での可変長データのバッファリング
可変長の受信データを処理するためにバッファーが必要なシナリオでは、次のアプローチが示されています。質問では固定サイズのバッファを使用しているため、読み取りが非効率になる可能性があります。次の改良されたソリューションを検討してください。
<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>
このソリューションは bytes.Buffer を利用し、必要に応じてバッファーを動的に拡張できます。この改良されたアプローチの仕組みは次のとおりです。
この改訂されたアプローチを使用すると、可変長データを処理できます。未使用のバッファ領域でメモリを無駄にすることなく、正常にストリーミングします。
以上がGolang で可変長データを効率的にバッファリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。