궁금해.
less
100GB 파일을 문제 없이 읽는 데 사용할 수 있습니다 . 하지만 cat
100GB 파일을 에 넣으면 파일과 그 이하 사이에 파이프(64K였나요?)가 있기 때문에 전체 파일을 버퍼링해야 한다고 less
생각합니다 .less
그럼 의 버퍼링 정책에 대해 아시는 분 계시나요? less
메모리가 다 될 때까지 처음부터 버퍼링을 시작하는 건가요?
답변1
맨페이지에서는 less
다음 주제를 다룹니다.
-bn or --buffers=n
Specifies the amount of buffer space less will use for each file,
in units of kilobytes (1024 bytes). By default 64K of buffer space
is used for each file (unless the file is a pipe; see the -B
option). The -b option specifies instead that n kilobytes of buf‐
fer space should be used for each file. If n is -1, buffer space
is unlimited; that is, the entire file can be read into memory.
-B or --auto-buffers
By default, when data is read from a pipe, buffers are allocated
automatically as needed. If a large amount of data is read from
the pipe, this can cause a large amount of memory to be allocated.
The -B option disables this automatic allocation of buffers for
pipes, so that only 64K (or the amount of space specified by the -b
option) is used for the pipe. Warning: use of -B can result in
erroneous display, since only the most recently viewed part of the
piped data is kept in memory; any earlier data is lost.
맨페이지에서는 -B 및 -b 옵션으로 제한하지 않으면 버퍼가 결국 전체 입력만큼 커질 것임을 암시합니다.