ํ์ฌ 3์ฐจ์ ๋ฐฐ์ด์ธ List๋ฅผ 1์ฐจ์ ๋ฐฐ์ด๋ก ๋ฐ๊พธ๋ ์ฝ๋๊ฐ ์๋๋ฐ, ์์ ์์ ์ ํ๋ฉด ํ๊ท 6ms ๊ฐ ๊ฑธ๋ฆผ.
์ด๊ฒ ์ ๊ฑฐ 3์คfor๋ฌธ ๋๋ฉด์ ์๊ธฐ๋ ์๊ฐ์ธ๋ฐ ์ด๊ฑธ ์ข๋ ์ค์ผ ๋ฐฉ๋ฒ์ด ์์๊น์?
๋ด๊ฐ ๋ฐฐ์์ด ์งง์์ List๋ฅผ 3์ฐจ์๋ฐฐ์ด๋ก ์ ์ธ์ํ๋ฉด ํด๊ฒฐํ๊ธฐ ํ๋ ๋ฌธ์ ๋ผ์ 3์ฐจ์๋ฐฐ์ด์ ์์ฐ๊ธด ํ๋ค ๊ฒ ๊ฐ์.
์ปฌ๋ง
๊ฐ์ ๋ฌธ์ ๋ฅผ Cํฌํ ์ ํตํด์ ํด๊ฒฐํ์ ์ด์๋๋ฐ, ๋ฐฐ๊ผฝ์ด ๋ ์ปค์ง๊ฑฐ๊ฐ์ ๋๋ ต๋ค์. ๋ฐฐ์ด์ ์ฌ์ฉํ์ ๋งํผ iterable ๋ฐฉ์์ผ๋ก 3์ฐจ์ ๋ฐฐ์ด์์ฑ๋ฅผ ํต์ง๋ก ์ฌ์ฉํ๋๋ฐฉ๋ฒ์ ์ด๋ค๊ฐ์??
iterable์ ๋ํด ์์ธํ ์์ง๋ชปํด์.. ํ๋ฒ ๊ณต๋ถํด๋ณด๊ฒ ์ต๋๋ค
๊ฑ ์ ์ด์ 1์ฐจ์ ๋ฐฐ์ด๋ก ์ ์ฅํด๋๊ณ ์ฐ๋ฉด์๋จ? X[ ] Y[ ] Z[ ] ์ด๋ ๊ฒ
๊ฒฐ๊ตญ height*width*width๋ฅผ ์ํํด์ผ ํ๋ค๋ ์์ ์์ ๋๊ฐ์๊ฑฐ ์๋๊ฐ์? List๊ฐ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋๋คํด๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ Capacity๋๊น ํ๋ฒ์ ๋ณต์ฌํ๋๊ฒ๋ ๋ฌด๋ฆฌ๊ฐ ์์ํ ๊ณ ์
๋ฐ๋ณต๋ฌธ์ ๋ฌธ์ ๊ฐ ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ ์กํ๋๊ฒ ๋๋ฆฐ๊ฑฐ ๊ฐ์๋ฐ
List ์ ์ธํ ๋ Capacity ์ถฉ๋ถํ ์ฃผ์๊ณ , ToArray ์์จ๋ ๋๋ฉด ๋นผ๋๊ฒ ๋์๋ฏ์
๊ธฐ์กด์๋ ๊ทธ๋ฐ๋ฐฉ๋ฒ์ ์จ์ 1๊ฐ์ List์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ ToArray๋ฅผ ์จ์ 0ms๊ฐ ๊ฑธ๋ ธ์ง๋ง ๋ฌธ์ ํด๊ฒฐ์ ์ํด 3์ฐจ์๋ฐฐ์ด๋ก List๋ฅผ ๋๋์๋๋ ์ต๋ 6ms๊ฐ ๊ฑธ๋ฆฌ๋๊ตฐ์. ์ ๊ฐ ๋ฐฐ์์ด ์งง์ 3์ฐจ์๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๊ฒ ๋ง๊ณ ๋ ๋ค๋ฅธ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค
3์ฐจ์ ๋ฐฐ์ด ๋ฌธ์ ๊ฐ ์๋๋ผ ๋ฐฉ๊ธ ๋งํ๊ฑฐ ์ ๋ถ ์ง๊ธ ์ฌ๋ฆฌ์ ์ฝ๋์ ๋ค ์ ์ฉ ๊ฐ๋ฅํ ์๊ธฐ์์ฉ
ํด๋ณด๊ธด ํ๋๋ฐ ์ ์๋๋ค์ฉ ;ใ ;
3์ค ํฌ๋ฌธ ๋์์ ๊ทธ๋ฐ๊ฒ์๋๋ผ, ๊ทธ๋ฅ ๋ฐ์ดํฐ ์์ฒด๊ฐ ์กธ๋ผ ๋ง๊ณ , ๋ฌด์๋ณด๋ค ๋ณต์ฌ๊ฐ ์ผ์ด๋์ ๊ทธ๋ฐ๊ฑฐ๊ฐ์๋ฐ. ToArray ์ ๊ฑฐ ๊ผญ ๋ฃ์ด์ผํจ? Copy๋๋ฒ ์ผ์ด๋ ๊ฑฐ๊ฐ์๋ฐ. vertices๋ triangles uv ๋ฐ์ดํฐ ํ์ ์ด ๋จผ๋?
๋ค ์ ๋ ๊ฐ๋ณต์ฌ๊ฐ ๋น๋ฒํ๊ฒ ๋ฐ์ํด์ ๋๋ ค์ง ๊ฒ ๊ฐ์๋ฐ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ ๋ชจ๋ฅด๊ฒ ๋๋ผ๊ณ ์... vertices ๋ triangles๋ uv๋ ์์ ์๋ก ์ ์ธํด์ค๊ฑฐ๋ ๊ฐ์ List์ ๋ฐ์ดํฐ ํ์ ์ ๋๋ค.
AddRange๋ List๋ ๋ฐ์ผ๋๊น ์ผ๋จ ToArray๋ถํฐ ๋นผ๋ณด์ฃ
์ค.... 1ms๊น์ง ์ค๊ธดํ๋ค์ ๊ฐ์ฌํฉ๋๋ค
3์ฐจ์ ๋ฐฐ์ด์ด๋ 1์ฐจ์ ๋ฐฐ์ด์ด๋ ๋ฐ๋ณตํ์๊ฐ ๋๊ฐ์ผ๋ฉด ์๋ฌด ์๋ฏธ ์์
๊ทธ๋ฅ ๋ฐ๋ณตํ๋ ์ฝ๋ ์์ฒด์ ๋ฌธ์ ๊ฐ ์๋ ๊ฑฐ์ง 3์ฐจ์ ๋ฐฐ์ด์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ํํ๋ ๋๊ฐ์, ์๋๋ฉด ๊ทธ ๋ฐ๋ณตํ๋ ํ์ ์์ฒด๊ฐ ๋ฌธ์ ์ผ ์ ์๊ณ ์ฝ๋๋ฅผ ์ ํํ ๋ชจ๋ฅด๊ณ ์๋๋ ๋ฌธ์ ์์๋ค๋๊น ๋ฐ๋ณตํ๋ ๋ถ๋ถ์ ์ ๋ง์ ธ๋ณด์
๋ญ๊ฐ ํน๋ณํ๊ฒ ์ฝํฌ๋น ํ ๋ฐฉ๋ฒ์ด์์๊ฑฐ๊ฐ์๋ฐ ๋ชจ๋ฅด๊ฒ ๋ค์ forfoforifcontinue๋ณด๋ค ํจ์ ๋ ์ข์๋ฐฉ๋ฒ์ด์์๊ฑฐ๊ฐ์๋ฐ
์ด๊ฑฐ๋ ๋ ์ก๊ณ ํ๋์๊ฐ ํด๋ณด๋ฉด ์ฌ๋ฏธ์๊ฒ ๋คใ ใ