์๋ ? ๋ ์ผ๋ง ์ ์ ๋ฉํฐ์ค๋ ๋ฉ์ ๊ดํด์ ์๋ก ์๊ฒ ๋ ์ฌ์ค์ ๋ฐํ์ผ๋ก ์ค๋ ๋๋ฅผ ๋ง์๋๋ก ์ฌ์ฉํ ์ ์๋ ํ๋ก์ ํธ ํ๊ฒฝ์ ๋ง๋ค์์ด.
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ์ค, ๊ฐ์๊ธฐ ์ ๋ํฐ์์ ๋ฉํฐ์ค๋ ๋ฉ์ ์ฐ๋ ๊ฒ ์ผ๋ง๋ ์๋ฏธ์๋ ์ผ์ธ์ง ์๊ณ ์ถ์ด์ ธ์ ์คํ์ ํ๋ ํด๋ดค์ด.
๋จผ์ ํ ์คํธ ํ๊ฒฝ์ด์ผ. ์ด๋ฐ ์์ผ๋ก ์ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ง๋ค๊ณ ๋์๊ฐ๊ฒ ํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์์ด.
๋ชจ๋ ์คํ๋ค์ ๋ณ์๋ฅผ ์ต์ํํ๊ธฐ ์ํด ํ๋ก์ ํธ๋ฅผ ๋น๋ํด์ ์คํํ์ด.
์ด๊ฑด ์๋ค์ ๋ง๋ค์ด์ ๋๋ฆฌ๋ ์ฝ๋์ผ.
์ค๋ฅธ์ชฝ ํด๋์ค๊ฐ ์ ํด๋์ค์ด๊ณ , ๋ฐ์ง๋ฆ๊ณผ ์๋๋ฅผ ์ ๋ ฅํ๋ฉด ์์ด ํน์ ์์น์ ์์ฑ๋ผ์ ๋์.
์ผ์ชฝ์ ์๋ค์ ๋ง๋๋ ํจ์์ด๊ณ , for๋ฌธ๊ณผ ๊ฐ๋จํ ์ผ๊ฐํจ์๋ฅผ ์ฌ์ฉํด์ ์๋ค์ ๋ฐฐ์นํ๋ ์ญํ ์ ํด.
์ฌ๊ธฐ ๋ณด์ด๋ ์์ ๊ฐฏ์๋ ์ฝ 5๋ง๊ฐ ์ ๋์ผ.
๋จผ์ ์ปค์คํ ์ค๋ ๋๋ ์ ์ฐ๊ณ ์ ๋ํฐ์์ง์ Update ํจ์๋ง์ ์ด์ฉํด์ ์๋ค์ ๋๋ ธ์ด.
๋ณด๋ฉด FPS๊ฐ ์ฝ 20์ ๋ ๋์ค๊ณ , CPU์ ํ ์ค๋ ๋๊ฐ ์์ฒญ ๊ฐ๊ถ์ง๋ ๊ฑธ ๋ณผ ์ ์์ด.
๋ค์์ ์ ๋ํฐ์ Update๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ปค์คํ ์ค๋ ๋๋ฅผ ํ๋ ๋ง๋ค์ด์ ์๋ค์ ๋๋ ธ์ด.
FPS๋ Update๋ฌธ๋ง์ ์ฌ์ฉํ ์ ์ผ์ด์ค์ ๋น์ทํ๋ฐ, ์ค์ ๋ก ์์ ์์น๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉ๋ ์ค๋ ๋๋ ์ด ํ๋์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฐ ๊ฒ ๊ฐ์.
๋ค๋ง ์ฐจ์ด์ ์ด ์๋ค๋ฉด ์ด์ ์ ์์ ์์น ๊ณ์ฐ๊ณผ ์ค์ ์์ transform์ ๋ฐ๊พธ๋ ์์ ์ ํ๋์ ์ค๋ ๋์์ ํ๋๋ฐ, ์ง๊ธ์ ์์ ์์น ๊ณ์ฐ๊ณผ ์์ trnanform์ ๋ฐ๊พธ๋ ์ค๋ ๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ 2๊ฐ์ ์ค๋ ๋๊ฐ ๋งฅ์ค๋ฅผ ์ฐ๊ณ ์์ด.
์ฐพ์๋ดค๋๋ฐ, ์ ๋ํฐ ์์ฒด๊ฐ ์ฑ๊ธ ์ค๋ ๋ ๊ธฐ๋ฐ ๊ฒ์ ์ ์์ ์ผ๋ํด ๋๊ณ ๋ง๋ค์ด์ ๊ทธ๋ฐ์ง GameObject์ transform์ ์ ๋ํฐ ๋ฐ์ ์ค๋ ๋์์ ์์ ํ ์ ์๋๋ผ๊ณ .
๊ทธ๋์ ์ต์ ์ ๋ฉํฐ์ค๋ ๋ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด ๋ถ๋์ด Unity์ ๋ฉ์ธ ์ค๋ ๋๊ฐ ๋๋๋ฉด ์ปค์คํ ์ค๋ ๋๋ค์ด ํ๋ํ๊ณ , ์ปค์คํ ์ค๋ ๋๋ค์ ํ๋์ด ๋๋๋ฉด Unity ์ค๋ ๋๊ฐ ๋์ํ๋๋ก ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ์ด.
์ด ์๊ธด ์ฌ๊ธฐ๊น์ง ํ๊ณ , ์์ ์์น ๊ณ์ฐ ์ค๋ ๋๋ฅผ 2๊ฐ๋ก ๋๋ ค๋ณผ๊น?
? ์ด์ 11ํ๋ ์์ด ๋์ค๋ค?
์ค๋ ๋๋ ์ด 3๊ฐ(์ ๋ํฐ 1 + ์ปค์คํ 2)๊ฐ ๋งฅ์ค๋ฅผ ์ฐ๋๋ฐ, ํ๋ ์์ ์คํ๋ ค ๋ฎ์์ก์ด.
๋ ์ผ์ฒ๋ฆฌ ์์์ ํจ์จ์ฑ์ ์ํ์ฌ ์ผ์ชฝ์ฒ๋ผ ๊ฐ ์ค๋ ๋๋ง๋ค ์์ ํ๊ฐ ์๋ ๊ฒ ์๋๋ผ ์ค๋ฅธ์ชฝ์ฒ๋ผ ํ๋์ ๊ณตํต ์์ ํ์์ ๋จผ์ ์ผ์ ๋๋ธ ์ค๋ ๋๊ฐ ์ผ์ ๊ฐ์ ธ์์ ํ๋ ๋ฐฉ์์ผ๋ก ์์คํ ์ ๊ตฌ์ฑํ์ด, ์ด๋ ํ๊ฐ ํ๋์ด๊ธฐ ๋๋ฌธ์ย ์์ ์ ์์ฃผ ์ ํํ๊ฒ ๋๋ฉด ๋ฝ์ด ์์ฃผ ๊ฑธ๋ ค์ ๊ทธ๋งํผ ๋ง์ ์ง์ฐ์ด ๋ฐ์ํ๋ ๊ฒ ๊ฐ์.
์ง๊ธ๊น์ง์ ๊ฒฐ๊ณผ๋ก ๋ณด๋ฉด, ๋จ์ํ ์์คํ ์ ๋ฉํฐ์ค๋ ๋ฉ์ ๋๋ณด๋ค ์ค์ด ๋ง์ ๊ฒ์ฒ๋ผ ๋ณด์ฌ.
์์์ ์ ๊ทธ๊ณ ๋ชจ๋ํฐ๋งํ๋ ์์ ์ด ๋ฉํฐ์ค๋ ๋ฉ์ผ๋ก ๋จ์ถํ ์๊ฐ๋ณด๋ค ๋ ๋ง์ ์๊ฐ์ ์ฐ๊ณ ์๊ฑฐ๋ .
๊ทธ๋ฌ๋ฉด ๊ทธ ๊ณ์ฐ์ด ์์ฒญ ๋ณต์กํ๋ค๋ฉด ์ด๋จ๊น?
์ด๋ฒ์ ์์ ๊ณ์ฐํ๋ ํด๋์ค์ ์ด์ ํ๋ ์๋ง๋ค ์์ฒ ๋ณต์กํ ๊ณ์ฐ์ 100๋ฒ์ฉ ๋ฐ๋ณตํ๋๋ก ํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ ์คํ์ ๋ค์ ํด๋ดค์ด.
๋จผ์ ์ ๋ํฐ์ Update ๋ฌธ๋ง ์ผ์ ๋ ๊ฒฐ๊ณผ์ผ.
ํ๋ ์์ 3์ ๋ ๋์ค๊ณ , ํ ์ค๋ ๋๋ง ๊ฐ๊ถ์ง๋ ๊ฑธ ๋ณผ ์ ์์ด.
์ด์ ๋ชจ๋ ๊ณ์ฐ์ ํ๋์ ์ปค์คํ ์ค๋ ๋๋ก ํ๊ฒ๋ ํด๋ดค์ด.
์ด์ ๊ณผ ๋น์ทํ๊ฒ 3ํ๋ ์ ์ ๋๊ฐ ๋์.
๊ทธ๋ผ ์ด์ ์ปค์คํ ์ค๋ ๋๋ฅผ 2๊ฐ๋ก ๋๋ ค๋ณผ๊น?
์ค! ์ด์ ๋ณด๋ค ์ฝ 2๋ฐฐ ์ฆ๊ฐํ 7ํ๋ ์ ์ ๋๊ฐ ๋์ค๋ ๊ฑธ ๋ณผ ์ ์์ด.
CPU๋ 2๊ฐ๊ฐ ์ต๊ณ ๋ฅผ ์ฐ๊ณ ์๊ณ .
๋ณต์กํ ๊ณ์ฐ์์๋ ๋ฉํฐ์ค๋ ๋ฉ์ด ์ ์๋ฏธํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ๋ค์ฃผ๋ ๊ฒ ๊ฐ์.
๋ด ์ปดํจํฐ๋ ์ด 6๊ฐ์ ๋ฌผ๋ฆฌ ์ค๋ ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ CPU๊ฐ ํ์ฌ๋์ด ์์ด.
๊ทธ๋ฌ๋ฉด ์ปค์คํ ์ค๋ ๋๋ฅผ 6์์ ์ ๋ํฐ๊ฐ ์ฐ๋ ์ค๋ ๋ 1๊ฐ๋ฅผ ๋บ 5๊ฐ๋ก ์ค์ ํ๋ฉด ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ง ์์๊น?
์คใ ใ ใ ใ ใ ๊ฐ๊ฟใ ใ ใ ใ ใ ใ ใ ใ
ํ๋ ์์ด 14์ ๋๋ก, ์ฒ์์ 3์ ๋นํด ์ฝ 5๋ฐฐ์ ๋ ๋์ด๋ฌ์ด.
์ฌ๊ธฐ์ ์ฌ์ฉ๋๋ ์ค๋ ๋๊ฐ 5๋ฐฐ ๋์ด๋ฌ์ผ๋๊น ์ด์ ๋น๋กํด์ ์๊ฐ ๋จ์ถ ํจ๊ณผ๋ฅผ ์ป์ ๊ฑธ ํ์ธํ ์ ์์ด.
์ด๋ ๊ฒ ์ค๋์ ๊ฐ๋จํ๊ฒ ์ ๋ํฐ์์ ๋ฉํฐ์ค๋ ๋ฉ์ด ์ฃผ๋ ํจ๊ณผ์ ๋ํด ์คํ์ ํด๋ดค์ด.
๋ด๊ฐ ๋ด๋ฆฐ ๊ฒฐ๋ก ์, ๋จ์ํ ๊ณ์ฐ๋งย ์ฌ์ฉํ๋ ๊ฒ์์ ๊ตณ์ด ๋ฉํฐ์ค๋ ๋ฉ์ ์ ์ฉํ์ง ์์๋ ๋์ง๋ง, ๊ธธ์ฐพ๊ธฐ๋ ์ธ๊ณต์ง๋ฅ AI๊ฐ ํ์ฌ๋ ๋ฐํ ์ ์๋ฎฌ๋ ์ด์ ๊ฒ์์ ๊ฒฝ์ฐ ๋ฉํฐ์ค๋ ๋ฉ์ด ์ ์๋ฏธํ ์ด๋์ ๊ฐ์ ธ๋ค์ค ์ ์์ ๊ฒ์ด๋ผ๋ ๊ฑฐ์ผ.
๋ค์์ ๋ง๋ค๊ณ ์๋ ๊ฒ์์ ๋ํ ๊ธ์ ๊ฐ์ ธ์๋ณผ๊ฒ. ์๋ !
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
GameObject์ transform์ ์ ๋ํฐ ๋ฐ์ ์ค๋ ๋์์ ์์ ํ ์ ์๋๋ผ๊ณ << ์ ํํ๋ ๋ฉ์ธ์ค๋ ๋๊ฐ ์๋ ์๋ธ ์ค๋ ๋์์๋ ์ ๋ํฐ์์ ์ ๊ณตํ๋ api(ํธ๋์คํผ , ๊ฒ์ปดํผ๋ํธ , ์ ๋ํฐ ์ฝ๋ฃจํด ๋ฑ)์ ์ ๋ถ ์ฌ์ฉํ ์ ์์ ๋ช๋ช์ ๋๋ฒ๊ทธ๋ก ์๋ฌ๋ฅผ ๋ฟ์ด์ ์ฝ๊ฒ ์ฐพ์์ ์์ง๋ง ๋ช๋ช์ ์๋ฌ์กฐ์ฐจ ๋ฟ์ง ์๊ณ ๊ทธ๋ฅ ์๋ธ์ค๋ ๋๊ฐ ์ฃฝ์ด๋ฒ๋ฆผ. ๋ํ์ ์ผ๋ก Random.range๊ฐ ์์. ๊ทธ๋์ ์๋ธ์ค๋ ๋์์ ๋๋ค ์ฐ๋ ค๋ฉด System.Random rand = new Random() rand.Next(); ์ฒ๋ผ C#๊ป๋ก ์จ์ค์ผํจ.
ในใ ์๋๋๊ฒ ๋ง์ ๊ฑด ์ดํดํ๊ฒ ๋๋ฐ ์๋ธ ์ค๋ ๋์์ ์ค๋ฅ ์๊ธฐ๋ฉด ์ ๋ํฐ๊ฐ ๊ทธ๋ฅ ๋ฉ์ถฐ๋ฒ๋ ค์ ๋๋ฒ๊ทธ๊ฐ ๋๋ฌด ์ด๋ ค์.. ๊ทธ๋๋ ๋คํํ ์๋ธ ์ค๋ ๋์์ Debug.Log๋ ์๋ํ๋๋ผ ใ ใ
ใ ใ ๋ง์ฆ ์๊ทธ๋ฐ์ง ๋ชจ๋ฅด๊ฒ ์ด...์ Debug.Log๋ ๋๋๊ฑด์ง...
๊ทผ๋ฐ ์๋ธ์ค๋ ๋ ๋ง์ด์ฐ๋ฉด Debug.Log ์ป๋ค๊ฐ ๋ญ๊ฐ ์ด๋์ ์คํ๋๋์ง ์ถ์ ์ด ์๋๋๋ผ๊ณ
https://imgur.com/KrCLPth
๋ด๊ฐ
์ ์ task ์จ์ ๋ง๋ ํ๋ก๊ทธ๋จ์ธ๋ฐ ๋๋ฆฌ๋ฉด cpu ์ ๋ ๊ฒ ์ก์๋จน๋๋ผ
์ ํํ๋ ์ด๋์ ์คํ๋๋๋๊ฐ ์๋๋ผ ์ด๋ ํ์ด๋ฐ์ ์คํ๋๋๋ ใ ใ
์ ๊ฐ์ด์๋ค.. ์ฌ์ค ๋๋ ํ ์คํฌ 5๊ฐ ๋๊ฒจ์๋ ํ ์คํธํด๋ดค๋๋ฐ ๊ทธ ์ด์์ ์๋๋ ๋๋ ค์ง๊ณ ์์ ๋ 12์ค๋ ๋์ค 6์ค๋ ๋๋ง ์ด์ฌํ ํ๋๋ผ๊ณ . ์ ๋ ๊ฒ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์?
๋์ถฉ ๊ตฌ๊ธ ๊ฐ๊ฒจ๋ณด๋๊น ์ด๋ฐ์ด์ผ๊ธฐ๊ฐ ์๋ค.
https://stackoverflow.com/questions/18473412/cannot-use-more-than-half-of-total-available-thread-in-cpu
ํ์ดํผ์ค๋ ๋ฉ ์น๋๊น ๊ฝค ๋ง์ด ๋์ค๋ค ใฑใ ใฑใ
๊ทธ๋ฅ Task ์ป๋๋ฐ ์ ๋ ๊ฒ ๋์ ์ ํ๋ก์ ํธ๊ฐ ๊ณ์ฐํ ๊ฒ ์ค์ง๊ฒ ๋ง์ ๊ฐ์ง๊ณ ๋ฉ์ธ์ค๋ ๋๋ก๋ง ๋๋ฆฌ๋ฉด ํ๋ฃจ ์ข ์ผ ๊ฑธ๋ฆผ ๊ทธ๋์ ๊ฑ ๋ ๋ค ๊ณ์ฐ ๋์ด๋ ๋๋ง๋ค ์ค๋ ๋ ๋๋ ธ๋ค๊ฐ ์ ๋ํฐ ์์ญ๋ฒ ๋ป๋๊ณ ... ๊ทธ๋์ ๊ฑ ํ์คํฌ ์จ์ ๊ตฌํํ๋๋ฐ ์๊ฐ์ธ๋ก ์ ๋ ๊ฒ ์ํ๋๋ผ๊ณ ๋๋ ์จ๋ณด์ง ์์๋๋ฐ ์ฐพ์๋ณด๋ฉด unitask ๋ผ๊ณ ์ ๋ํฐ์ ๋ง๊ฒ task ์ธ์์๋ ํจํค์ง ์์ผ๋๊น ํจ ์จ๋ณด์ . ์ง๊ธ์ ์ ์ ์ฌ๊ณ ์์ด์ ๋ฉํฐ์ค๋ ๋ ์ธ์ผ ์๋ค๋ณด๋๊น ์์จ๋ณด๊ธด ํ๋๋ฐ ์ฌ๋๋ค ๋ง๋ก๋ ์ข๋ค๋๋ผ
ํ์คํฌ๊ฐ ๋จ์ํ ์ฐ๋ ๋ํ์ ๋์ด๋ค ์ฐ๊ธฐ๋ง ํ๋๊ฒ ์๋๋ผ ๋ญ๊ฐ ๊ท์ฐฎ์ ์๋ฉด๋ฐ ์์ ์ ์ฌ๋ฌ๊ฐ์ง ์์์ ์ฒ๋ฆฌํด์ฃผ๋๊ฒ ์๋๋ณด๋ค ๊ทธ ๋ง๋๋ก๋ฉด
์ ๊ฑฐ ํ์ฐฝ ์ฐพ์๋ ์ ์ผ ์ข์๊ฒ ์ ๋งํฌ์ ๋ฌ๋ฆฐ๊ฑฐ์ฒ๋ผ Parallel.foreach , ๊ทธ๋ค์์ด task , ๊ทธ๋ค์์ด threadPool ์ด๋ผ๊ณ ๊ณต๋ถํ๊ฑฐ๊ฐ์ task๋ threadpool์ด๋ ๋น์ทํ๋ฐ threadpool๋ณด๋ค task๊ฐ ๋ ๋ค์ ๋์์ c#์ ๋ง๊ฒ ๊ตฌํํ๊ฑฐ๋ผ๊ณ ๊ธฐ์ตํจ
์ก์์คํ ์ด๋ ํฐ ์ฐจ์ด ์๊ฒ ์ง?
์ก์์คํ ์ด ๋ด๋ถ์ ์ผ๋ก ์ฐ๋ ๋ ํ์ด๋ ํ์คํฌ๋ก ๊ตฌํ๋์ด์๋ค๊ณ ๋ค์๊ฑฐ๊ฐ์์ ๋ณ ์ฐจ์ด ์์์ค ์์๋๋ฐ ๊ทธ๋ฐ๋ฌธ์ ๊ฐ ์๊ตฌ๋. ํ ... ์ ๋ํฐ์๋ผ๋ค ๊ตฌ์กฐ ๊ฐํธํ๋ฉด์ ์ก์์คํ ์์ฒญ ๋ฏธ๋ค์คฌ๋๊ฑธ๋ก ๊ธฐ์ตํ๋๋ฐ
์ค์ค ์ ๋ํฐ์ ์ด๋ฐ ๊ธฐ๋ฅ๋ ์์๋ค ์ง์ ๋ง๋ค์ด๋ณด๋ ๊ฒ๋ ์ค์ํ์ง๋ง ์ด๋ฐ ๊ฑธ ํ์ฉํ๋ฉด ์ข๋ ์ต์ ํ๋ ๊ฒ์์ ๋ง๋ค ์ ์์ ๊ฒ ๊ฐ๋ค. ์ด๋ฒ ํ๋ก์ ํธ ์์ฑํ๊ณ ๋ฐฐ์๋ด์ผ์ง
์ฝ๋ฉ๋ ธ์์ถ
์ด์ ๋ ์์ค์ด๋ฉด ๋ ธ์๋ ๋ฒ์ด๋ฌ์ง
async, await ํค์๋๋ฅผ ํ
๊ทธ๊ฑฐ ์ ๋ํฐ์์ ์๋จน์ด์ ๊ฑ Task๋ก ์ฒ๋ฆฌํจ.