Unverified Commit 8c80a9d1 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

upload: change default UPLOAD_BUFSIZE to 64KB

To make uploads significantly faster in some circumstances.

Part 2 of #2888
Closes #2892
parent e6e9b006
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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!");

+7 −2
Original line number Diff line number Diff line
@@ -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