From 13357095eef1bf644ae3f878143716f73e2afd2a Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Mon, 19 Oct 2020 14:41:29 +0200 Subject: [PATCH] Increase the default HTTPClient download chunk size to 64 KiB This improves download speeds at the cost of increased memory usage. This change also effects HTTPRequest automatically. See #32807 and #33862. --- core/io/http_client.h | 3 ++- doc/classes/HTTPClient.xml | 2 +- doc/classes/HTTPRequest.xml | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/io/http_client.h b/core/io/http_client.h index 1dc1f3d76ae..a233d2d038b 100644 --- a/core/io/http_client.h +++ b/core/io/http_client.h @@ -182,7 +182,8 @@ private: int response_num = 0; Vector response_headers; - int read_chunk_size = 4096; + // 64 KiB by default (favors fast download speeds at the cost of memory usage). + int read_chunk_size = 65536; Error _get_http_data(uint8_t *p_buffer, int p_bytes, int &r_received); diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml index 9dc38b018aa..22d56239bd8 100644 --- a/doc/classes/HTTPClient.xml +++ b/doc/classes/HTTPClient.xml @@ -180,7 +180,7 @@ The connection to use for this client. - + The size of the buffer used and maximum bytes to read per iteration. See [method read_response_body_chunk]. diff --git a/doc/classes/HTTPRequest.xml b/doc/classes/HTTPRequest.xml index 8cc7ecfbe34..46d4040ea19 100644 --- a/doc/classes/HTTPRequest.xml +++ b/doc/classes/HTTPRequest.xml @@ -153,9 +153,9 @@ Maximum allowed size for response bodies. If the response body is compressed, this will be used as the maximum allowed size for the decompressed body. - + The size of the buffer used and maximum bytes to read per iteration. See [member HTTPClient.read_chunk_size]. - Set this to a higher value (e.g. 65536 for 64 KiB) when downloading large files to achieve better speeds at the cost of memory. + Set this to a lower value (e.g. 4096 for 4 KiB) when downloading small files to decrease memory usage at the cost of download speeds. The file to download into. Will output any received file into it.