Load times a lot longer now

Is it just me or are load times more than triple what it took up until before the patch? I’m alt tabbing to websurf during loads now.

4 Likes

Have you performed an uninstall and reinstall at any time since launch? If not, your CASC filesystem may have finally become so fragmented that loads are taking forever due to enumeration issues caused by said fragmentation.

What happens is that each patch doesn’t just create a new data.xxx and/or index.xxx file, it patches existing ones in addition to adding new ones. In the instances where new data files are added, the invalidated data from previous data.xxx is not removed. As the cruft accumulates, the game has to enumerate and read both the original and new index files in order to access the information. That causes significant slowdowns. The ideal option for those with fast internet and/or high or no data caps is to delete the \Data folder, empty the recycle bin, then fire up the Battle.net Desktop app and click Install. The game client will remain the same and your preferences will also remain stored as most of those are server side and the ones that are not are stored elsewhere.

When performing a “reinstall” in this manner, the game client will only be updated if a newer one is available, otherwise it will be left alone, which is fine as the client executable itself is not part of the CASC filesystem. When installation finishes, you will have a brand new install that is 100% contiguous and should load much faster, client side bugs notwithstanding. Just remember to never click Play until after the install fully completes itself, or else you are virtually guaranteed to corrupt at least a few data files. This is true for all of Blizzard’s modern games that use the CASC encapsulation filesystem.

Edit:

6 Likes

Thanks – I’ll give a reinstall a shot. Pretty good idea.

WAIT. New info coming…

Edit: If you have the Diablo II: Resurrected PTR and/or Beta folders still installed, you must delete them first or else the game will copy files from that already fragmented installation. I just found this out the hard way. Delete the PTR/Beta folders first before doing a reinstall so you are guaranteed a completely fresh install.

3 Likes

ahhhhhh! Good to know. Thanks. Doing that now.

edit: now the bnet launcher Install button is greyed out and says it can’t be installed at this time. Ugh. Will have to figure this out now lol. I’ll get back to ya.

edit2: it’s downloading/installing now

Thanks for the info, but holy hell does this sound inconvenient. 30gigs is not a casual download.

I know it isn’t casual for most. I do take that into consideration when I make posts like this. Unfortunately it is the only way to eliminate the fragmentation that all CASC games suffer after multiple consecutive patches. And it doesn’t just affect Windows users either. macOS suffers twice as badly because its own APFS filesystem also has the same issues on its own. Couple that with CASC fragmentation and even a PCIe 4.0 NVMe drive can be brought down to regular SATA SSD speeds due to fragmentation and the effect this has on enumeration and thus actual data accesses.

3 Likes

Makes me wonder why the patches don’t simply replace the old files.

1 Like

They did with the old MPQ system. This type of system allows slipstreaming a patch in so that old data can remain valid while new data awaits to be activated (validated). It’s the entire reason Diablo 3 users can remain in a game when a patch is deployed (sometimes) and only have to patch after they exit the game client.

@TheTias.
Is this only the case if you have installed PTR/beta?

I noticed that I am very slow compared to all others in multiplayer games for months and I never installed PTR/beta. I use a SSD and I installed D2R only once, around its release time.

No. The PTR/Beta section merely lets players know that if you have those still laying around, the Battle.net app will first copy game files from those installations before finishing the update cycle with a download of the new data. The problem with that is that the BTR/PTR installs contain copies of previous Live installations, and when the Battle.net app copies data from PTR/BTR folders, which are already fragmented, you just end up with re-fragmented files with the re-installation. That’s why you have to delete the PTR/BTR folders prior to doing a full reinstallation, otherwise you’re just reusing fragmented files again.

Doesn’t seem worth the hassle to me, but eh.

You ever seen on sci fi shows like Star Trek: TNG (or later) where cloning a clone of a clone degrades with each new clone generation? This is the same effect, only with files. Eventually your installation will slow to a crawl and you’ll be blaming Blizzard for a faulty patch when in fact your files are so fragmented that even a perfect patch would be just as slow.

2 Likes

Since when is fragmentation an issue on SSD

Oh I meant that this

is not worth the hassle to have to essentially reinstall the game after every patch.

Solved it.
Smooth as butter now. Thank you so much for the advice, TheTias.

1 Like

The fragmentation is internal to the files, not external as in files are just in different data cells on the SSD. The problem that propogates as a result of the fragmentation is the increased enumeration delay. Enumeration is when a file is read so that the OS knows where data within a file is stored. With CASC the same data, both old and new, are indexed in more than one location, leading to eventual slowdowns in accessing the correct (validated) data vs. old (invalidated) data. That’s why the slowdowns never happened in old systems like MPQ that just flat out replaced the files, because straight replacement precludes fragmentation from ever happening in the first place.

It works similarly to macOS’s APFS filesystem’s B-tree extents nodes. Those keep track of file updates. If a file is patched or appended to, the original node remains and a new node is created, essentially forcing the OS to read two different locations to access all of the data within just that one file. Compound this by multiple edits/patches to multiple files and you quickly get thousands, even tens of thousands, of fragmented accesses. It isn’t the SSD that’s slowing down, it’s the OS, and in this case, the game’s own filesystem.

Essentially the SSD reads at a constant speed, but the OS is having to read, then re-read files because two different index nodes point to where the data is inside that file, and thus, two reads occur instead of one. And because these are almost always 4k random reads, the slowest kind for any form of SSD, they result in an actual reduction in data per second due to the nature of the reads and the repetition involved.

You don’t have to do this after every patch. The slowdowns do increment over time, but are very subtle in the first few patches. Usually significant slowdowns don’t start occurring until several patches after the install or reinstall, so you’re perfectly fine not reinstalling until you start feeling the slowdowns affect your gameplay.

1 Like

I had the beta and at least one version of PTR installed and my installation is also since release. I didn’t necessarily notice a step change with this patch, but my loads are definitely longer than I would like/expect considering I have an m.2 SSD so I’m definitely going to try this, thanks for the tip!

Actually going to be doing a windows reload anyway soon (unrelated) so I would have probably gotten the benefit without realizing the source.

Ah, that is good at least.

just a simple uninstall and install may solve this problem? Deleting some /data folders manually after uninstall is not necessary?
Just in case to understand a clean “re-install” of d2r:

  1. uninstall via launcher
  2. close launcher
  3. reopen launcher
  4. downloading d2r
  5. install

Thats it?