[proxy] github.com← back | site home | direct (HTTPS) ↗ | proxy home | ◑ dark◐ light

bpo-36103: change default buffer size of shutil.copyfileobj() by methane · Pull Request #12115 · python/cpython

the-knights-who-say-ni

It is changed from 16KiB to 64KiB.  The previous default value
is used since 1990.

coreutils chose 128 KiB as minimum buffer size for block device I/O.

But shutil.copyfileobj() can be used for non block devices.
So I choose more conservative value.

As my quick benchmark, performance difference between 64KiB and
128 KiB is up to ~5%.  On the other hand, performance difference
between 32 KiB and 64 KiB can be more than 10% when file is fully
buffered.

This is why 64 KiB is rational value.

methane changed the title change default buffer size of shutil.copyfileobj() bpo-36103: change default buffer size of shutil.copyfileobj()

Mar 1, 2019