728x90

1. Scatter/gather I/O(vectored I/O)

vector를 이용한 입출력으로 한번의 연산을 통해 선형 입출력 연산 여러개를 대체할 수 있다.(시스템 호출 횟수를 줄이며 원자성을 가진다.)

readv(), writev()

#include <sys/uio.h>

ssize_t readv(int fd, const struct iovec *iov, int count);

ssize_t writev(int fd, const struct iovec *iov, int count);

struct iovec{ void *iov_base; size_t iov_len;}

count가 작으면 리눅스 커널에서 동적할당 대신 segment array를 만들기 때문에 count가 충분히 작은 경우 성능이 개선된다.(현재 한계값은 8)

728x90

+ Recent posts