유저가 발견 (1만 달러 받았다고 함)
요약
- 10MB짜리 JSON 파싱하는 과정에서 발생한 문제
- 락스타 JSON 파서는 쓰레기
(+ 해시맵처럼 보이지만 해시맵이 아닌 무언가를 사용 중)
- JSON 파싱 후에 중복을 제거하는 이상한 루틴을 가지고 있음
(JSON 표준)
- RFC 8259
JSON 객체 내 키 값은 고유한 값을 가져야 함
- ECMA-262
중복 된 키 값이 있는 경우, 기존의 값을 덮어씀
=> 근데 락스타 구현은 중복 제거 후 값 추가임
- 코드를 수정하면 어떻게 되는가
Original online mode load time: ~6m flat
Time with only duplication check patch: 4m 30s
Time with only JSON parser patch: 2m 50s
Time with both issues patched: 1m 50s
https://youtu.be/0X-2iV0mrTM (스토리->온라인)
https://youtu.be/dM9tYsaeKGY (메뉴->온라인)
로딩 겁나 빨라짐
https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/
이야 1만 달러면 ㅈㄴ 후하네
되게 자세히 설명해주네
10MB 시발
이게 리버싱이다 - dc App
무슨 json이 10메가 씩이나 하지
안될이유가?
돈 넉넉히 줘서 광고나 하지
패치해도 2분이나 걸리는데 내부적으로 복사가 너무 많은거같네... 쓰레기파서노 - dc App