Hace 3 años | Por --675149-- a vidaextra.com
Publicado hace 3 años por --675149-- a vidaextra.com

Según comenta el propio Forsyth la cosa olía a código cuestionable provocando un cuello de botella, así que se puso a trastear con el código del juego hasta dar con lo que, aparentemente, era el problema: 63.000 objetos y mejoras de los mismos que aparecían listadas en un JSON de 10MB.

Comentarios

D

GTA Online, un juego en el que la única forma de ganar es no jugando

D

#2 Supongo que aprovechas para ir a super...aunque haya cola , te sobran 2 minutos....

D

6 Minutos de carga!!!! Tamos locos ???

Orgfff

#1 a mí, con mi viejo pc, me llega a tardar hasta 10 min... Es verdad que es aleatorio, a veces carga más rápido.

Nova6K0

Poniéndonos paranoicos, o mejor dicho no creyéndose casualidades. Se podía pensar que está hecho adrede para inflar artificialmente las características del hardware necesario. Y en el mejor de los casos lo que demuestra, es que el que hizo esa parte del código, se debería dedicar a recoger fresas.

Saludos.

V

#11 Si se dedica a recoger fresas no llegarían nunca a la mesa.

D

Mucho texto para un envío tan pobre. Podrían explicar como ha arreglado el problema de carga.

Honzo

#5 Lo explica, si leyeses el artículo te enterarías.

D

#6 no, el artículo solo dice que hay un problema relacionado con un JSON de 10MB, ni dice cual es el problema ni como se ha arreglado.

D

#5 Me contesto, está el enlace en el propio envío

https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/

Me encanta ver que usa x64dbg / IDA, no me siento anticuado

TL;DR - Parsing de JSON escrito en C, extremadamente ineficiente, que usa sscanf() y que internamente hace un strlen() del JSON completo por cada caracter que lee (para un input de 10MB) y para colmo guarda las 60k+ entradas del JSON en un "hashmap" que no es un hashmap sino un array por lo tanto el tiempo de lookup es O(N)

D
D

#5 Menéame, un juego en el que la única forma de ganar es no enviando noticias