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 중국어 웹사이트의 기타 관련 기사를 참조하세요!