ํ๋ก์ ํธ : https://github.com/HoonInPark/ServerHyperion.git๋ณธ ํฌ์คํธ์ ๋ํ ๋ด์ฉ์ feat/framesync ๋ธ๋์น์ ์๋ค. ํ์ฌ ์๋ฒ์์ Client Info ๊ฐ์ฒด์ ํ๋ง์ ๊ตฌํํ๊ณ ์๋๋ฐ, ์ ์์ด ๋ค์ด์ค๋ฉด ํ์์ ๋
ํ๋ก์ ํธ : https://github.com/HoonInPark/ServerHyperion.git์๋ ๋ด๊ฐ ๋ง๋ ๊ฐ์ฒดํ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ๋ผ ์์๋ค.๊ทผ๋ฐ std::queue๋ ์ํ ๋ถ๊ฐ๋ฅ.์ ์ํํ๊ณ ์ถ์ผ๋ฉด ํ๋ํ๋ ๋ํํด์ ๊ฐ์ ์ฝ๊ณ ๋ค์ ์ง์ด๋ฃ์ด์ผ ํ๋ค.
๋ฌธ์ "๋ฌด๋กํ๊ธด, ์ํ์ผ" - ๊ฐ์ฒด ํ๊ณผ ์ํ ์ธํฐํ์ด์ค ๊ตฌํํ๊ธฐ์์ ๋ด๋ถ ๋ฉค๋ฒ๋ฅผ deque๋ก ๋ณ๊ฒฝํ๋ค. ๊ทผ๋ฐ deque๋ ๋ฐ๋ณต์ ์ผ๋ก ํธ์/ํ์ ํ ๊ฒฝ์ฐ ๋์ ํ ๋น์ด ์ผ์ด๋๋ค. ๋๊ตฌ์ธ๊ฐ, ๋๊ฐ ๋ฐํ์์ ๋์ ํ ๋น์ ํ์์ด? ํด๊ฒฐ ์ํํ๋ฅผ ๋ง๋ค์ด์ ๋ฉค๋ฒ๋ก ๋ฐ๊ฟ ๋ฃ์ด์ฃผ์.
๋ฌธ์ ํ์ฌ ๋์ AccepterThread() ํจ์ ๋ด์ ๋ฃจํ๋ 32ms ๋ง๋ค ๊ณ์ ๋๋ค. AccepterThread ์ดํดํ๊ธฐ์์ ์ธ๊ธํ๋ฏ, PostAccept(...) ํจ์ ๋ด์ AcceptEx(...) ํจ์๊ฐ Client Info ์ธ์ ๊ฐ์ฒด์ ์ ์์ ๋ฐ๋๋ก ๋๊ธฐ์
ํ๋ก์ ํธ : https://github.com/HoonInPark/Hyperion.git ๋ณธ ํฌ์คํธ์ ๋ํ ๋ด์ฉ์ feat/obop ๋ธ๋์น์ ์๋ค. ์ฌ๋ด ๋๊ฐ ๋งํ๋๋ฐ, ๊ณ ์ ๊ฐ๋ฐ์๋ค์ด ์ด ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ์ ๋ญ๋ง์ ๊ฐ๋ฐ์ด๋ ์๊ด ์๋ ์๋ฆฌ๋ ๊ฐ์ด ์์ฌ ์๋ ๊ฑฐ๋ผ๊ณ . ๋ด
ํ๋ก์ ํธ : https://github.com/HoonInPark/Hyperion.git ๋ฌธ์ ๋ณธ ํ๋ก์ ํธ์ ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ๋ค. 3D ๊ฒ์์ ์๋ฒ ๊ถ์ ๋ชจ๋ธ์ ๊ตฌํ ์ด๋ฅผ ์ํ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ์ด ์๋ฒ์์ ์๋ํด์ผ ํ๊ณ , ์ด๊ฒ์ ๊ฒฐ๊ณผ ๊ฐ์ด ํด๋ผ์ด์ธํธ์ Replicate
๋ฌธ์ ๋ด๊ฐ ์ฒ์ IOCP ์๋ฒ๋ฅผ ๋ค๋ฃจ๊ธฐ ์์ํ ๋, ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๊ฐ ์ด์ํด ๋ณด์๋ค. ๋ถ๋ช ์ค๋ ๋๋ฅผ ์ ํธ์ ๋ฐ๋ผ ๋ฉ์ถ๊ณ ๋ค์ ๋์ํ๊ฒ ๋ง๋๋ ํจ์๋ค์ด ์๋๋ฐ๋, 1 ms๋ง ์ฌ๊ณ ๋ค์ ๋ค์ ๋ผ์ด๋๋ฅผ ๋๊ฒ ๋ง๋๋ ๊ฑฐ์๋ค. ์? SNS์ ์ง๋ฌธํด ๋ณด๋ ๋๊ตฐ๊ฐ๊ฐ '์์คํ ์ฝ'์ ๋ํด ์์๋ณด๋ผ๊ณ ํ๋ค. ํด๊ฒฐ ์ ์ฝ๋์์ 1 ms ์ฌ๊ณ ๋ค์ ๋ค์ ๋ผ์ด๋์์ ์ ์๋ฏธ...
ํ๋ก์ ํธ : https://github.com/HoonInPark/ServerHyperion.git ๋ณธ ํฌ์คํธ์ ๋ํ ๋ด์ฉ์ feat/lockfree ๋ธ๋์น์ ์๋ค. ๋ฌธ์ ๋ด๊ฐ ์ด์ ์ ์์ฑํ ์ํํ ๊ตฌํํ๊ธฐ๋ฅผ feat/framesync์ ์ ์ฉํ๊ณ main์๊น์ง ๋ณํฉํ
๋ฌธ์ MPMC์์ ์ ์ฉ๋๋ lock-free buffer queue๋ง๋ค๊ธฐ๋ฅผ ํ๋ ๋์ค, ์ฐธ๊ณ ํ ์ฝ๋์์ std::memoryorderrelaxed๋ฅผ ์ฐ๊ณ ์์๋ค. ๋ชจ๋์ ์ฝ๋์ C++ memory order ์ atomic ๊ฐ์ฒด์์ C++์ ๋ฉํฐ ์ค๋ ๋ฉ ๋ด์์ ์ค๋ ๋
ํ๋ก์ ํธ : https://github.com/HoonInPark/ServerHyperion.git ๋ณธ ํฌ์คํธ์ ๋ํ ๋ด์ฉ์ feat/lockfree ๋ธ๋์น์ ์(์)๋ค. ์ง๊ธ์ dev์ ๋ณํฉ๋๋ค. ๋ฌธ์ ๋๋ฏธํธ๋ฆฌ ๋ทฐ์ฝํ์ MPMC ์ํํ๋ฅผ ๋ด ํ๋ก์ ํธ์ ์ฌ์ฉํ๊ณ ์ ํ
๋ฌธ์ ํด๊ฒฐ
ํ์ฌ ํ ์คํธ ํ๊ฒฝ์ localhost๋ก ๊ตฌ์ถ๋ ์ํ. ํฅํ AZURE์ ์ฌ๋ฆฌ๋ฉด ๋ ๋น๋ฒํ๊ฒ ์๋์ ๋ฌธ์ ๊ฐ ์ผ์ด๋ ๊ฒ์ด๋ค. ๋ฌธ์ ๋๋ฏธ ํด๋ผ์ด์ธํธ๋ก ์คํธ๋ ์ค ํ ์คํธํ๊ธฐ์์ ํ ์คํธ ํ๊ฒฝ์ ๊ตฌ์ถํ ๋ค 30๋ช , 50๋ช , 100๋ช ์ผ๋ก ์ ์์๋ฅผ ๋๋ ค๊ฐ๋ฉฐ ํ ์คํธ๋ฅผ ํด๋ดค๋ค. ์ด๋ ๊ฒ
๋๋ฏธ ํด๋ผ์ด์ธํธ๋ก ์คํธ๋ ์ค ํ ์คํธํ๊ธฐ๋ฅผ ํด๋ดค์ง๋ง, ๋น์ ๋ฐ๊ฒฌํ๋ ๋ฌธ์ ๋ ๊ทธ๋๋ก์๋ค. ๋ฉ์ธ ๋ฃจํ๊ฐ ๋๋ ค์ ๊ฐ์ฒด ํ์ด ๊ณ ๊ฐ๋๋ ๊ฑฐ์๋ค. ์ ์ก์ด ์๋ฃ๋๋ฉด ๋ฉ์์ง unique_ptr์ ๋ด์ ํ๋ก ๋ฐํ๋๋๋ฐ, ์ด ๋ ์ ์์ ์์ ๋ฐ๋ผ ๊ณ ๊ฐ๋๋ ์๋๊ฐ ๋ฌ๋๊ณ , ๊ณ ๊ฐ๋์ง ์๋ ๊ฒฝ์ฐ
ํ๋ก์ ํธ : https://github.com/HoonInPark/ServerHyperion.git ๋ณธ ํฌ์คํธ์ ๋ํ ๋ด์ฉ์ feat/framesync ๋ธ๋์น์ ์๋ค. ๋ฌธ์ ์ง๊ธ ๋ด ์ฝ๋๋ ์๋ฒ๊ฐ ์์ํ ๋ Info ๊ฐ์ฒด๋ฅผ ์ผ์ ์ ๋งํผ ํ ๋นํ๊ณ ๋ฐฐ์ด์ ๋ฃ๋๋ค. ๊ทธ