Browse Source

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 13357095eef1bf644ae3f878143716f73e2afd2a)
Hugo Locurcio 4 years ago
parent
commit
2c6b3074fc
3 changed files with 5 additions and 4 deletions
  1. 2 1
      core/io/http_client.cpp
  2. 1 1
      doc/classes/HTTPClient.xml
  3. 2 2
      doc/classes/HTTPRequest.xml

+ 2 - 1
core/io/http_client.cpp

@@ -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() {

+ 1 - 1
doc/classes/HTTPClient.xml

@@ -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>

+ 2 - 2
doc/classes/HTTPRequest.xml

@@ -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.