How I cut GTA Online loading times by 70%
meh.

[๐ฉโ๐ป์์ง๋์ด๋ง][๐ฎ๊ฒ์]ใ๋๋ ์ด๋ป๊ฒ GTA Online์ ๋ก๋ฉ์ 70%๋ ์ค์๋?ใ ์์ฒญ ์ฌ๋ฐ๋ ์ด์ผ๊ธฐ์ ๋๋ค. GTA Online์ ํ ๊ฒ์ด๋จธ์ด์ ๋ชจ๋๊ฐ ๊ทน์ ๋ฌด๋ํ GTA Online์ ๋ก๋ฉ์ 6๋ถ๋์์ 1๋ถ 50์ด๋๋ก ์ค์๋ค๊ณ ํฉ๋๋ค. ๋งค์ฐ ์ฌ๋ฐ๋ ์ ์ ์ต์ ํ ์ฌ๋ก์ธ๋ฐ์. ๊ฐ๋จํ ํ๋กํ์ผ๋ง๋ง์ผ๋ก๋ ์์ ์๋ ์ ๋ณด์ธ๋ฐ, ์ ๋ฝ์คํ์์ ํด๋น ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ง ๋ชปํ๋์ง ์ข ๊ถ๊ธํฉ๋๋ค. ์๋ง๋ ๊ณง ํจ์น๊ฐ ๋์ง ์์๊น ์ถ๋ค์. ์๋ฌธ์๋ ์ค์ ๋ก ์ด ๊ณผ์ ์ ๋ํ ์ผํ๊ฒ ์ ์ด๋์์ผ๋ ๊ด์ฌ์๋ ๋ถ์ ๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์๋๋ ์ ๊ฐ ํ ๊ฐ๋จํ ์์ฝ(?)์ ๋๋ค. <๐ป GTA ๋ก๋ฉ์ ์ค์ด๊ธฐ> โ ์ ์ฐฐ ๋จ๊ณ ์ฐ์ , ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋๊ตฐ๊ฐ๊ฐ ์๋์ง ํ์ธํด๋ดค๊ณ , ์ค์ ๋ก 10~30์ด์ ๋ ์ ์ฝํ ์ฌ๋ก๊ฐ ์์์ต๋๋ค.! โ ๋ฒค์น๋งํน ๋จ๊ณ ์ธก์ ์ ํด๋ณด๋, GTA ์คํ ๋ฆฌ๋ 1๋ถ10์ด ๋ฐ์ ์๊ฑธ๋ฆฌ๋๋ฐ, ์ GTA online๋ง ๋ก๋ฉ์์ 6๋ฐฐ์ธ 6๋ถ์ด์์ด ๊ฑธ๋ฆฌ๋๊ฑด์ง ์๋ฌธ์ ๊ฐ์ง๊ธฐ ์์ํ์ต๋๋ค. โ ํน์ ๋๋ง ๊ทธ๋ฐ๊ฐ? ๋จ๊ณ ์ค๋ฌธ์กฐ์ฌ๋ฅผ ํ๊ฒฐ ๊ณผ, ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด 3๋ถ์ด์์ด ๊ฑธ๋ฆฌ๊ณ , ์์ข์ ๊ฒฝ์ฐ 6๋ถ์ ๋๋ ๊ฒฝ์ฐ๋ ํ๋คํ๋ค๊ณ ํฉ๋๋ค. โ ์ธก์ ๋จ๊ณ ์ข๋ ์ ํํ ์ธก์ ์ ์ํด "์๋์ฐ ์์ ๊ด๋ฆฌ์"๋ฅผ ์ด์ฉํด ์กฐ์ฌํด๋ดค์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, ๊ณต๋ ๋ฆฌ์์ค๋ฅผ ๋ก๋ฉํ๋ 1๋ถ์ ๋ ์์๋ ํ, ๋จ์ 4~5๋ถ์ ์ฑ๊ธ์ฝ์ด๋ฅผ ์ต๋๋ก ์ฌ์ฉํ๊ณ , ๋ค๋ฅธ ์์ ์ ์์ ์์์ ํ์ธํ์ต๋๋ค. - ๋์คํฌ ์ฌ์ฉ๋ X - ๋คํธ์ํฌ ์ฌ์ฉ๋? ์ฝ๊ฐ ์์ง๋ง ๋ช ์ดํ 0์ผ๋ก ๋จ์ด์ง - GPU,๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ฑฐ์ ์์. โ ๋จ์ผ ์ค๋ ๋ ์ฌ์ฉ ์ PC์ AMD CPU๋ ์ธํ CPU๋ณด๋ค ๋จ์ผ ์ฐ๋ ๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค๋๊ฑธ๋ก ์๋ ค์ ธ์์ต๋๋ค. ๊ทธ๋์ ์ PC์ ๋ก๋ฉ์ด ๋๋ฆด ์ ์์ง๋ง, ๊ทธ๋ ๋ค๊ณ ํ๊ธฐ์ ๋๋ฌด CPU๋ง ์ฌ์ฉํ๊ณ ์๋ค๋ ์ ์ ๋๋ค. ์ ๋ ์คํ๋ ค ๋คํธ์ํฌ ๋ก๋๋ ๋์คํฌ ์ฝ๊ธฐ๋ฅผ ์์ํ๊ณ ์์์ต๋๋ค. ์๋ง๋ ์ด๋ "๋ฒ๊ทธ"๊ฐ ์๋๊ฐ ์ถ์ต๋๋ค. โ ํ๋กํ์ผ๋ง CPU ๋ณ๋ชฉ์ ํ์ธํ๊ธฐ ์ํด ํ๋กํ์ผ๋ฌ๋ฅผ ์ด์ฉํ๊ณ , ์ค๋๊ฑธ๋ฆฌ๋ ํจ์์ ์์น๋ฅผ ์์๋์ต๋๋ค. โ ๋ค์ด๊ฐ๋ด ์๋ค. ๋์ค์ด์ ๋ธ์ ํด๋ดค๊ณ , ์ด๊ฒ ์๋๊ฑฐ ๊ฐ์ต๋๋ค. ์๋ง๋ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ๋ณดํธ๊ธฐ๋ฅ์ด ์๋๊ฒ ๊ฐ๋ค์. ํ์ง๋ง ๊ฑฑ์ ๋ง์ธ์. ์ฐ๋ฆฌ๊ฐ ๋ณด๊ณ ์ถ์ ๋ถ๋ถ๋ง ๋ณด๋ฉด ๋๋๊น์. ์ ๋ ํ๋ก์ธ์ค ๋คํ๋ฅผ ์ด์ฉํด๋ดค์ต๋๋ค. โ ๋ฌธ์ 1. strlen strlen ํํ์ ๊ตฌ๋ฌธ์ด ๋์ค๊ณ , sscanf๋ฅผ ํธ์ถํฉ๋๋ค. ์.. ์ด๊ฑด ๋ฌด์ธ๊ฐ๋ฅผ ํ์ฑ(parsing)ํ๊ณ ์๋๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ๋ฌด์์ ํ์ฑํ๋ ๊ฑธ๊น์? ํ๋ก์ธ์ค์ ์ผ๋ถ ์ํ์ ๋คํํ ๊ฒฐ๊ณผ, JSON, ๋๋ต 6๋ง3์ฒ๊ฐ์ ํญ๋ชฉ์ ๊ฐ์ง 10mb์ JSON ์ด์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ์ด๊ฑด ์๋ง๋ "net shop ์นดํ๋ก๊ทธ"๋ก ๋ณด์ ๋๋ค. ๊ตฌ๋งคํ ์ ์๋ ์์ดํ ๊ฐ์๊ฑฐ์ฃ . ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ๊ฐ ํญ๋ชฉ(63000๊ฐ)๋ง๋ค sscanf๊ฐ ํธ์ถ๋๊ณ , ์ด ์์ strlenํจ์๊ฐ ๋ฌธ์์ด ๊ธธ์ด๋ฅผ ๊ตฌํ๊ธฐ ์ํด ํ์ผ ์ ์ฒด๋ฅผ ์ฝ์ต๋๋ค. ์ฆ, 10MB ๋ฌธ์์ด์ ์ฐ๋ฌ์ ์นดํ๋ก๊ทธ ๊ฐฏ์์ธ 63000๋ฒ ์ฝ๋๊ฒ๋๋ค. โ ๋ฌธ์ 2. Hash-Array๋ฅผ ์ฌ์ฉํฉ๋๋ค๋ง... ํ์ฑ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ์ ๋ณด๋, ์ ์ฒด ๋ฐฐ์ด์ ํ๋์ฉ ํ์ธํ์ฌ ํด๋น ๋ชฉ๋ก์ ์๋์ง ์ฌ๋ถ๋ฅผ ํด์๊ฐ์ ์ง์ ๋น๊ตํด์ ํ์ธํ๊ณ ์์ต๋๋ค. hashmap์ ์ฌ์ฉํ๊ณ ์์ง๋ง, ์ hash์ ํน์ง์ ์ฌ์ฉํ์ง ์๋๊ฒ์ธ์ง ์๋ฌธ์ด ๊ฐ๋๋ค. ์ด ๋ ํนํ ํด์ ๋์ .. ๊ทธ๋ฅ ๋ฐ๋ก hashmap์ ์ฌ์ฉํ๋ฉด ํจ์ฌ ๋นจ๋ผ์ง ๊ฒ๋๋ค. โ ๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ธฐ์กด : 6๋ถ ํด์ํ์ธ ํจ์น ํ ๊ฒฝ์ฐ : 4๋ถ 30์ด JSON ํ์ ํจ์นํ ๊ฒฝ์ฐ : 2๋ถ 50์ด ๋๋ค ํจ์นํ ๊ฒฝ์ฐ : 1๋ถ 50์ด ๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์์ต๋๋ค. ์ ์ง์ ๋์ค์ด์ ๋ธํ๊ณ , dll์ ํํนํ์ง๋ง, ๋ฝ์คํ์์ ํด๋น ๋ถ๋ถ์ ๋ ์ข์ ๊ฑธ๋ก ๋ฐ๊พธ๋ ํจ์น๋ฅผ ํ๋ฉด ํ๋ฃจ์ ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ ํ๋ฉด ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
2021๋ 3์ 14์ผ ์ค์ 5:22
์ง๋์ฃผ ์ปค๋ฆฌ์ด๋ฆฌ์์ ์ธ๊ธฐ ์๋ ๊ฒ์๋ฌผ์ด์์!
ํ์ง์๋ค์ '์ง์ง ์ธ์ฌ์ดํธ'๊ฐ ๋ด๊ธด ์ ๊ณ ์ฃผ์ ์์์ ๋ฐ์๋ณด์ธ์.
์ปค๋ฆฌ์ด๋ฆฌ | ์ผ์๋ฌ๋ค์ ์ปค๋ฆฌ์ด SNS