]> granicus.if.org Git - llvm/commit
[Support] Make the default chunk size of raw_fd_ostream to 1 GiB.
authorRui Ueyama <ruiu@google.com>
Tue, 31 Oct 2017 17:37:20 +0000 (17:37 +0000)
committerRui Ueyama <ruiu@google.com>
Tue, 31 Oct 2017 17:37:20 +0000 (17:37 +0000)
commit153600762f860cb6a8329411a490f86aa18265d1
tree027216866b838f791ec9798f42e8ce25467be59e
parent98506f3291d690d957b5e3d89ffc420a9ae48b35
[Support] Make the default chunk size of raw_fd_ostream to 1 GiB.

Previously, we call write(2) for each 32767 byte chunk. That is not
efficient because Linux can handle much larger write requests.
This patch changes the chunk size on Linux to 1 GiB.

This patch also changes the default chunks size to SSIZE_MAX. I think
that doesn't in practice change this function's behavior on any operating
system because SSIZE_MAX on 64-bit machine is unrealistically large,
and writing 2 GiB (SSIZE_MAX on 32-bit) on a 32-bit machine by a single
call of write(2) is also unrealistic, as the userspace is usually
limited to 2 GiB. That said, it is in general a good thing to do because
a write larger than SSIZE_MAX is implementation-defined in POSIX.

Differential Revision: https://reviews.llvm.org/D39444

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317015 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Support/raw_ostream.cpp