Zdroj: Pixabay.com (odkaz)
Každý, kdo rád hraje počítačové hry musí znát GTA a někteří možná nostalgicky zavzpomínají na GTA Vice City. V současné době se pro usnadnění přístupu hráčů přesunulo GTA do on-line prostředí, kam se tím pádem přesunuly i výpočetní nároky. Tudíž hráčům stačí jen kvalitní připojení internetu a nemusí mít nejnovější grafické karty.
Nyní se však ozval jeden hacker, který tvrdí, že objevil zásadní problém ukrytý přímo v knihovnách DLL. Oprava tohoto problému způsobí, že se bude GTA Online načítat až o 70% rychleji. Dlouhá doba načítání je koneckonců tématem GTA Online již od samého spuštění před sedmi lety a nepomohl ani kvalitnější a rychlejší hardware. Z anonymní statistiky na Redditu vyplývá, že více než polovině hráčů se GTA načítá až šest minut. Dalších 35% hráčů pak čeká ještě déle.
Proto se hacker vystupující pod pseudonymem T0st snažil zjistit, proč jde GTA tak pomalu. Nejdříve hledal problém ve vlastním CPU, kde zjistil, že GTA využívá čtyři minuty pouze jedno vlákno. Po rozebrání kódu a analýze spuštěných procesů zaregistroval sadu zmatených funkcí, které analyzovaly 10MB velký JSON soubor s 63 000 položkami.
Tento soubor vypadal podobně jako export z e-shopu, kde je popsána každá položka, kterou si mohou hráči GTA Online dokoupit ve hře. 10MB soubor není pro dnešní počítače problém, ale problém může být špatná implementace. V praxi pak v tomto JSONu běžela funkce strlen, která je časově poměrně náročná. Po výměně této funkce za pouhé uložení do mezipaměti se ušetřilo až 50% času.
Po analýze dat v JSONu se zdá, že GTA Online prochází několikrát celou tabulku a ověřuje si, zda nejsou přítomny duplicitní položky, jak jsou položky dlouhé, atd. T0st doporučuje nahradit tento JSON hashovací tabulkou, která by umožnila rychlou kontrolu duplikátů, čímž by se snížila doba načítání o dalších 25%. Tím dosáhl T0st zkrácení doby načítání z šesti minut na necelé dvě minuty. T0st uveřejnil svou úpravu na Githubu, kde je také volně ke stažení (zde). Implementace kódu je však na vlastní riziko. Doufejme, že vývojáři z Rockstar Games dají na rady T0st a upraví svůj zdrojový kód.
Zdroj: ArsTechnica.com (odkaz)