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.

(cherry picked from commit 13357095ee)
This commit is contained in:
Hugo Locurcio 2020-10-19 14:41:29 +02:00 committed by Rémi Verschelde
parent b682df5653
commit 2c6b3074fc
No known key found for this signature in database
GPG key ID: C3336907360768E1
3 changed files with 5 additions and 4 deletions

View file

@ -749,7 +749,8 @@ HTTPClient::HTTPClient() {
ssl = false;
blocking = false;
handshaking = false;
read_chunk_size = 4096;
// 64 KiB by default (favors fast download speeds at the cost of memory usage).
read_chunk_size = 65536;
}
HTTPClient::~HTTPClient() {

View file

@ -181,7 +181,7 @@
<member name="connection" type="StreamPeer" setter="set_connection" getter="get_connection">
The connection to use for this client.
</member>
<member name="read_chunk_size" type="int" setter="set_read_chunk_size" getter="get_read_chunk_size" default="4096">
<member name="read_chunk_size" type="int" setter="set_read_chunk_size" getter="get_read_chunk_size" default="65536">
The size of the buffer used and maximum bytes to read per iteration. See [method read_response_body_chunk].
</member>
</members>

View file

@ -125,9 +125,9 @@
<member name="body_size_limit" type="int" setter="set_body_size_limit" getter="get_body_size_limit" default="-1">
Maximum allowed size for response bodies.
</member>
<member name="download_chunk_size" type="int" setter="set_download_chunk_size" getter="get_download_chunk_size" default="4096">
<member name="download_chunk_size" type="int" setter="set_download_chunk_size" getter="get_download_chunk_size" default="65536">
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.
</member>
<member name="download_file" type="String" setter="set_download_file" getter="get_download_file" default="&quot;&quot;">
The file to download into. Will output any received file into it.