Download Optimization?

Guess many of us shares the same headache on the painful patch downloading on initial installation and subsequent updates. I noticed that the network was not fully utilized during the download.
From the installation manager, I noticed the installation progress was an alternate download-decompressing combination. When files are decompressing, download speed drop significantly; and when a large patch (like geodata) is being fetched, you can have a downloading speed of ~600 Mbps depending on your network configs. You can check the network speed graph in Task Manager - it’s like a roller coaster downloading FS patches (but I don’t have any screenshot with me :sweat_smile:)

I think the devs can optimize the download progress by decompressing and installing one patch while downloading the next - after all, with a min requirement of 4th gen Core i5, multi-core and multi-threading is the bare requirement to run the game, why not boost the download by squeezing a little bit more of juice from the CPU?

3 Likes

Totally agree. One thread to download and add to queue for install, another that looks at the queue and does the decompression and the actual install. change the 1 status line now to 2 lines showing download and install progress seperately. How hard can that be? Easy peasy in .NET.

Of course. The download process in this product is such that it downloads a chunk, then uncompressed and installs it on disk. Then it downloads the next chunk.

The work is going to be split between network speed, CPU speed (for decompressing), and disk I/O speed (for writing the uncompressed files).

Anyone that is expecting to see their network bandwidth at 100% utilization solid throughout the process just doesn’t understand what is going on.

The CPU load to decompress the chunk is fairly low. But the disk I/O it takes to allocate and write about 10GB of files is not insignificant – especially those on spinning HDDs or even on early generation SSD.

One can use task manager and resource manager to get insight into utilization of these resources, and determine where the bottleneck is on a per-system basis.

If one were to compare Steam delivery, you’d notice steam likes to allocate the disk space up front and write ■■■■■ files with NULL data. That is what the “pre-allocating disk” porting of the process is doing, and for some it can take just 20 seconds for a 50GB game, and others it can take 20 minutes.

After that the download phase begins, and you see your network utilization go through the roof and it makes you happy. You feel like you are getting your money’s worth out of your Internet speed, and its good. And there is very little disk IO at that point because it takes significantly less disk bandwidth to update an existing file with new data – so long as you don’t increase or decrease the file size.

This scheme is entirely different, and the download and disk I/O workloads are not separated out, and therefore disk I/O can become a big bottleneck.

Also, CPU and disk utilization are going to be a little higher if one has an endpoint security (a.k.a. antivirus) installed without an exclusion for where these files lives. And if one hasn’t installed a security provider, then one gets Windows Defender which definitely impacts this kind of operation.

How to vote this up to make MS see it? I’m downloading new patch for an hours! It is extremely slow!

1 Like

been downloading for 3hrs now 260mb completed???

I just hope that microsoft will give the users to select what to download, and hopefully an seperata Installer to download in case we need to reinstall.