GTA Online might be one of the most popular and longest-lasting games to date, but it isn't without its flaws. More specifically, GTA Online has an insane loading time of up to six minutes on most PC hardware (possibly more on slower PCs), which is absurd given how old the game is. A fix might be in the works, or at least, a fan of GTAV has figured out the problem and fixed it with a simple solution. Well, 'fixed' might be too strong a word, but the situation has improved at least.
Before all this, the GTAV fan "T0ST" was super annoyed at the absurdly long wait times he was getting in GTA Online. His load times were a whopping six minutes just to get into the game. To start troubleshooting, he started running Task Manager to see what was taking up so many resources during that 6-minute time frame.
He found out that the game was only loading two CPU cores consistently, for the entire duration of the load time. Nothing else was being utilized, so storage, graphics, and network bandwidth didn't appear to be the bottleneck. This is unusual behavior, as a game should be loading stuff from storage into system memory and talking with the server, which could have at least partially explained the long wait times.
So T0ST delved deeper, into the game code itself, and eventually found the problem. It turns out the game is basically doing a ton of extra work for no reason at all. The game is basically looking at 10MB JSON file with a bunch of in-game store items, repeatedly, as it works to load the game. This is something the game can completely skip and do later. It also repeats scanning of the 10MB JSON every few bytes, further exacerbating the problem.
T0ST fixed this by creating his own DLL with optimized code and installing it into the game files. That cut load times down to a far more pallatable 1 minute and 50 seconds. That's still pretty awful for a game that came out so long ago, but it's one-third the time as before. Hopefully, this will encourage Rockstar to finally take a look this portion of the game code, and using data from T0ST it should be able to implement the fix in a future patch.