diff options
author | Daniel Stenberg <daniel@haxx.se> | 2018-08-17 11:36:12 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2018-08-18 15:48:52 +0200 |
commit | 8c80a9d1e26be192d30a075e2c7397f8f12498c6 (patch) | |
tree | b309ade8c533d99b2e9e154e45c04d24e22d721b | |
parent | e6e9b006f770ef104fbcdef32dd6e7f42eb114b7 (diff) |
upload: change default UPLOAD_BUFSIZE to 64KB
To make uploads significantly faster in some circumstances.
Part 2 of #2888
Closes #2892
-rw-r--r-- | lib/transfer.c | 2 | ||||
-rw-r--r-- | lib/urldata.h | 9 |
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index 96d8ab48f..ab9094adc 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -992,7 +992,7 @@ static CURLcode readwrite_upload(struct Curl_easy *data, (data->set.crlf))) { /* Do we need to allocate a scratch buffer? */ if(!data->state.scratch) { - data->state.scratch = malloc(2 * data->set.buffer_size); + data->state.scratch = malloc(2 * UPLOAD_BUFSIZE); if(!data->state.scratch) { failf(data, "Failed to alloc scratch buffer!"); diff --git a/lib/urldata.h b/lib/urldata.h index 502cff362..67db3b2fc 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -143,8 +143,13 @@ typedef ssize_t (Curl_recv)(struct connectdata *conn, /* connection data */ #endif /* HAVE_LIBSSH2_H */ /* The upload buffer size, should not be smaller than CURL_MAX_WRITE_SIZE, as - it needs to hold a full buffer as could be sent in a write callback */ -#define UPLOAD_BUFSIZE CURL_MAX_WRITE_SIZE + it needs to hold a full buffer as could be sent in a write callback. + + The size was 16KB for many years but was bumped to 64KB because it makes + libcurl able to do significantly faster uploads in some circumstances. Even + larger buffers can help further, but this is deemed a fair memory/speed + compromise. */ +#define UPLOAD_BUFSIZE 65536 /* The "master buffer" is for HTTP pipelining */ #define MASTERBUF_SIZE 16384 |