Een ontwikkelaar is er in geslaagd door met aangepaste code GTA Online 69,4 procent sneller te laden. Dat is bereikt door het proces te vereenvoudigen van hoe het systeem de in-game items leest en verwerkt. De game is berucht om zijn lange laadtijden.
De ontwikkelaar met de naam T0ST schrijft dat hij weliswaar een verouderde computer gebruikt met een AMD FX-8350-cpu en een Nvidia GeForce GTX 1070, in combinatie met DDR3-werkgeheugen, maar dat het laden van GTA Online zes keer langer duurde dan de verhaalmodus. Die verhaalmodus nam 70 seconden in beslag, terwijl de laadtijd voor de onlinemodus zes minuten duurde. Volgens de ontwikkelaar en anderen zou dit verschil logischerwijs niet zo groot moeten zijn. Zijn verouderde Bulldozer-cpu heeft weliswaar geen hoge single thread-prestaties, wat een deel van de verklaring kon zijn, maar er bleek meer aan de hand.
Hij kwam het probleem op het spoor door het taakbeheer in Windows te openen. Daar bleek dat gedurende de eerste minuut de gemeenschappelijke elementen geladen worden die voor zowel de verhaal- als de onlinemodus worden gebruikt. Daarna bleek een proces te starten waardoor voor meer dan vier minuten het gebruik van een enkele core van zijn cpu drastisch omhoog ging, terwijl er nauwelijks of geen sprake was van het gebruik van de opslag, het netwerk, de gpu of het werkgeheugen. De ontwikkelaar zegt het vreemd te vinden dat alleen de cpu werd gebruikt.
Uiteindelijk kwam hij tot de conclusie dat er twee bugs of problemen in de code zitten. Allereerst leest de game in een JSON-tekstbestand van 10MB alle items in de game. Daar staan 63.000 entries in. Dat is een lijst met alle in het spel aan te kopen items, waarbij volgens de ontwikkelaar niet direct aan microtransacties gedacht moet worden. Na het inlezen van elk van de 63.000 items, wordt elk karakter in dat gehele tekstbestand opnieuw geteld, en dat dus 63.000 keer. Ten tweede worden voor de voorbereiding van de ingelezen itemdata zowel gegevens als de naam en de prijs van het item, en een hash van het item ingeladen. Elke keer dat GTA Online een item opslaat, wordt de hele lijst één voor één gecontroleerd, waarbij de hash van het item wordt vergeleken om te zien of het in de lijst voorkomt. Kortom, de hashwaarde van het opgeslagen item wordt vergeleken met de hashes van elk ander item dat al eerder is opgeslagen. Dit kan leiden tot (63000^2+63000)/2 controles, oftewel 1.984.531.500 stuks. GTA Online doet dit om er zeker van te zijn dat er geen dubbele items in de uiteindelijke lijst zitten, om hackers tegen te gaan.
Volgens de ontwikkelaar vormt dit proces een aanslag op de cpu en is het niet eens noodzakelijk, omdat de lijst met de hashes leeg is voordat het JSON-bestand wordt geladen. Bovendien zijn alle items in dit bestand uniek, waardoor het volgens T0ST niet nodig is om te controleren of ze wel of niet in de lijst voorkomen. Daarnaast wijst hij erop dat er zelfs een functie beschikbaar is om de items rechtstreeks in te voegen.
Op basis van zijn eigen code blijkt het mogelijk de laadtijd terug te brengen van zes minuten naar een minuut en vijftig seconden. Zijn eigen code berekent de lengte van de lijst met items slechts een keer, wat al een aanzienlijke hoeveelheid rekenwerk scheelt. Daarnaast slaat hij het checken van de hashes over, omdat er in zijn ogen geen reden is om te controleren op dubbele items. Daarmee zijn de bijna twee miljard controles niet meer aan de orde, waardoor de processor veel sneller klaar is met het laden.
De ontwikkelaar maakt duidelijk dat zijn eigen code een proof of concept is en dat het gebruik ervan en daarmee het modificeren van GTA Online kan leiden tot het schorsen van spelersaccounts.