์๋ ์ฌ์ง ์ ๋ฆฌํ๋ค๊ฐ ์บก์ณํด๋์๊ฑฐ ๋ณด๊ณ ๋ฌธ๋ ๊ถ๊ธํด์
์ฝ๋ฃจํด์์ While๋ฌธ ์์๋ค๊ฐ yield return new waitforsecond(1);
ํ๋ฉด์ ์ ๊ฒ 1์ด๋ง๋ค ๋ฐ๋ณตํ ํ
๋ฐ ๊ทธ๋ผ 1์ด๋ง๋ค new ํค์๋๋ก ์๋ก์ด WaitForSecond๋ฅผ ๋ง๋ค์ด์ ๋ฉ๋ชจ๋ฆฌ๋จน๋๊ฑฐ์??
๋ ์๋ง ์ด์ ๋ฐ์ฌ ์ ๋ถ new๋ก ๋์์๊ฑฐ๊ฐ์๋ฐ ๋ฏธ๋ฆฌ waitForSecond ์ ์ธํด๋๊ณ ์ฐ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋๋จน๋๊ฑฐ?
๋ฉ๋ชจ๋ฆฌ ๋ ๋จน๋๊ฒ ์๋๋ผ GC๊ฐ ๋ ๋ฐ์๋๋๊ฑฐ. ๋ฃจํ ์์์ new ํค์๋ ์จ์ ์ฐ๋ฉด GC๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํด์ค์ผ ํ๋๊ฑฐ๊ณ , ๊ทธ ๋ฐ์์ ์ฐ๋ฉด GC๊ฐ ๊ทธ๋งํผ ๋ ์์ฃผ ์ฒ๋ฆฌ ์ํด์ค๋ ๋๋๊ฑฐ์ฃ .
๊ทธ๋ผ ๋ง์ด๋๋์ ๋ค์์์ new ์์ฐ๋๊ฒ ์ข๋ค๋๊ฑด ์๊ฒ ๋๋ฐ, ๊ทธ๊ฑฐ ์ํฅ์ด ํผ??
์ผ๋ฐ์ผ์ธ๋ฐ ๊ถ๊ธํ๋ฉด ํ๋กํ์ผ๋ฌ ๋๋ ค๋ณด๋ฉด ๋ฐ๋ก ๋์ด.
update๋ ๋๋ต 0.02์ด ์ฌ์ด์ ํ ์ฌ์ดํด์ด ๋์๊ฐํ ๋ฐ ์ ๊ฑด 1์ด์ ํ๋ฒ๋ฐ์ ์คํ์ด ์๋์์ ๊ทธ ์ ๋์ผ ๋ฑํ ํฐ ๋ฌธ์ ์์ํ ๋ฐ ๋ญ ์ ๋ฐ ์ต๊ด์ ๋ฏธ๋ฆฌ ๋ค์ด๋ ๊ฒ๋ ๋์์ง ์๊ฒ ์ง
์ ๋ฐ๊ฑฐ ํนํ ์ ๊ฒฝ์ฐ๋ ์ฌ๋๋ค์ ์๋ง ์ ๋ฐ์ดํธ ๋์ ๋ชจ์กฐ๋ฆฌ ์ฝ๋ฃจํด์ผ๋ก ๊ตฌํํ ์ฌ๋๋ค์ผ๊ฑฐ์ ๊ทธ๊ฒ ํผํฌ๋จผ์ค ๋ ์ข๋ค๊ณ ๊ทธ๋ ๊ฒ ํ๋ ์ฌ๋๋ค๋ ์๋๋ผ
๊ทธ๋ฅ ์บ์ฑ ํ๋ฒ๋ง ํด์ฃผ๋ฉด ๋๋๊ฑธ ๊ฐ๋จํ๊ฑฐ์์๋ถํฐ ๊ฐ๋น์ง ์์๊ฐ๋ฉด ์ต์ ํ ์ํ๊ฒ ๋จ์๋ฆฌ๋?
๊ทผ๊ฐ? ๋ฌผ๋ก ์ฒจ๋ถํฐ ์ฐจ๊ณก์ฐจ๊ณก ์ค๋นํ๋ฉด ์ข๊ธดํ๋ฐ ํ ์คํธ๋ก 100๊ฐ๋ฅผ ๋์์ ๋๋ฆฌ๋ ๋งค๋ฒ 2kb์ ๋ ์์ด๋๋ฐ ์ด๋ณด๊ฐ ํฌ๊ฒ ๊ฑฑ์ ํ ์ ๋ ์๋์ง ์์? ๋์ค์ ํ๊บผ๋ฒ์ ๋ชฐ์์ ๊ณ ์น๊ธฐ๋ ์ฝ๊ณ ...
WaitForClass ์์ ๋ฉค๋ฒ๋ณ์๊ฐ ์์ด์ ์๊ฐ ๋๋ฉด ๋ฆฌํดํด์ฃผ๋ ์ฝ๋์ผํ ๋ฐ ๊ทธ ์ธ์คํด์ค๋ฅผ ์ ์ฅํด๋๊ฒ ๋ค๊ณ ? ํด๋ณด๊ณ ๊ฒฐ๊ณผ์ข.. ๊ทธ๋ฆฌ๊ณ gc๋ ์๊ฐ๋ณด๋ค ๋น ๋ฅธ ์ฃผ๊ธฐ๋ก collect ํด์ผํ๊ธฐ ๋๋ฌธ์ 1์ด ๋ฐ๋ณต ๊ฐ์ง๊ณ ๋ gc๊ณ ๋ฏผํ ํ์ ์์
Yield๋ฌธ์ด ๊ทธ๋ ๊ฒ ์๋ํ๋๊ฒ ์๋๋ผ์ ์บ์ํด๋ ์๊ด ์์ด์
object์
Waitforsecond waitforsecond = new Waitforsecond(1f); while(true) { yield return waitforsecond ; }
https://forum.unity.com/threads/c-coroutine-waitforseconds-garbage-collection-tip.224878/#post-2151707
์ข์
๊ฑฐ ์์๊ฐ๋ค
์บ์ฑํ๋๊ฒ ํฌ๊ฒ ์ด๋ ค์ด ๊ฒ๋ ์๋๊ณ , ๊ฐ๋ ์ฑ์ ํฌ๊ฒ ๋จ์ดํธ๋ฆฌ๋ ๊ฒ๋ ์๋์ง๋ผ ๋๋ ์ ๋งํ๋ฉด ์บ์ฑํจ.
๋๋ ๊ทธ๋ฅ ์บ์ฑํด์ฃผ๋ ํด๋์ค ํ๋ ๋ง๋ค์ด์ ์
GC๋ GC์ธ๋ฐ ๋์ ํ ๋น ์์ฒด๊ฐ ์์ฃผ ์ผ์ด๋๋ฉด ์์ข์