[go] bufio 패키지와 입출력 버퍼 설정

Go의 bufio 패키지는 입출력 작업에 대한 버퍼링을 제공하여 입출력 성능을 향상시킬 수 있습니다. 이 패키지를 사용하면 입출력 작업을 더 효율적으로 처리할 수 있습니다.

bufio 패키지 소개

bufio 패키지는 ReaderWriter를 제공하여 입출력 작업을 지원합니다. Reader는 입력 스트림을 버퍼링하고 Writer는 출력 스트림을 버퍼링합니다. 이를 통해 입출력 작업의 성능을 향상시킬 수 있습니다.

bufio.Reader의 버퍼 설정

bufio 패키지의 Reader를 사용할 때, 버퍼의 크기를 설정하여 입출력 작업에 사용되는 메모리 양을 조절할 수 있습니다. 기본값은 4096바이트이며, 이 값을 조정하여 성능을 최적화할 수 있습니다.

package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	file, err := os.Open("input.txt")
	if err != nil {
		panic(err)
	}
	defer file.Close()

	reader := bufio.NewReaderSize(file, 8192) // 8192바이트 크기의 버퍼 설정
	// 버퍼 크기를 조정하여 입출력 성능을 향상시킬 수 있음
}

bufio.Writer의 버퍼 설정

bufio 패키지의 Writer를 사용할 때도 마찬가지로 버퍼의 크기를 조정하여 출력 성능을 최적화할 수 있습니다.

package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	file, err := os.Create("output.txt")
	if err != nil {
		panic(err)
	}
	defer file.Close()

	writer := bufio.NewWriterSize(file, 8192) // 8192바이트 크기의 버퍼 설정
	// 버퍼 크기를 조정하여 출력 성능을 향상시킬 수 있음
}

bufio 패키지를 사용하여 입출력 작업의 성능을 향상시키고, 버퍼의 크기를 조절하여 메모리 사용량을 최적화할 수 있습니다.

더 많은 정보를 원하시면 공식 문서를 참고하세요.


2021년 8월 기준의 예시코드와 설명입니다.