๋์ถฉ ์ฌ์ด์ฆ 60000์ ๋ ๋ฆฌ์คํธ๋ฅผ ๋ค๋ค์ผ ํ๋๋ฐ
์ฌ์ด์ฆ๊ฐ ์ข ์ปค์ ๊ทธ๋ฐ์ง ๋ฐ๋ณต๋ฌธ ๋๋ฆฌ๋ฉด์ ๋ฆฌ์คํธ๊ฐ ๋์ด๋ ๋๋ง๋ค ์คํ ์๋๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋๋ ๋๋์
List.Add๊ฐ ๋ฆฌ์ฌ์ด์งํ ๋ ํฌ๊ธฐ์ ์ํฅ๋ฐ์์ ๊ทธ๋ฐ๊ฐ?
์ด๊ธฐ์ ๋ฆฌ์คํธ ์ต๋ ํฌ๊ธฐ๋ฅผ ์ง์ ํด๋ฌ์ผ ํ๋?
์ด๊ธฐ์ ๋ฆฌ์คํธ ์ต๋ ํฌ๊ธฐ ์ง์ ํด์ฃผ๋๊ฒ ๋น ๋ฅผ๋ฏ ๊ธฐ๋ณธ์ด 1024์ฏค ๋๊ณ ๊ณ์ 80% ์ฐฐ๋๋ง๋ค ๋๋ฐฐ์ฉ ๋ด๋ถ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น ํ ๊ฑด๋ฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ๋ฌ๋ฒ ํ๋ฉด ๋๋ฆฌ๊ธฐ ๋ง๋ จ์ด์ง
ใณใณ ์ข ๋ง์ด ๊ณ ์ณ์ผ ๋๊ธด ํ๋๋ฐ ํ๋ฒ ํด๋ด์ผ๊ฒ ๋ค
new List<>(60000) ์ด๋ ๊ฒ ํ๋ฉด ๋ ๊ฑธ?
ใดใด ๊ทธ ๋ฆฌ์คํธ๋ฅผ ์ค์ ๋ก ๋ค๋ฃจ๋ ๊ตฌ๋ ๋ถ๋ถ ๋งํ๋ ๊ฑฐ์์
ใ ใ
new List<>(60000) ํ๋ฉด capacity ( ๋ฉ๋ชจ๋ฆฌ ํ ๋น๋๊ฑฐ๋ง ๋์ด๋๊ณ ) Count ๋ 0์ผ๊ฑด๋ฐ ๊ทธ๋๋ ๋ง์ด ์์ ํด์ผ๋จ?
ใดใด ๋ง ์ฝ๋ ๋ฏ์ด๊ณ ์น๋ ์์ค์ ์๋ ๊ทธ๋ฅ List.Count() ์ฐ๋๊ฑธ ๋ฐ๋ก ์นด์ดํฐ int ๋ง๋ค๊ณ ๋ฐ๋ณต๋ฌธ ์์ ํด์ฃผ๋ฉด ๋ ๊ฑฐ๊ฐ์
์ค์ ๋ก ๋ฆฌ์คํธ ๋์ด๋ ๋๋ง๋ค ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋๋๊ฒ ๋ง์
C# List๋ ๊ธธ์ด ์กฐ์ ์ด ์์๋ ํด๋น ๋ฆฌ์คํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ด์ง์๊ณ ์๋ก์ด ํฌ๊ธฐ์ List๋ฅผ ์๋ก ๋ง๋ค๊ณ ์นดํผํ๋๊ฑฐ๋ผ ๋์ด๋๋ฉด ๋์ด๋ ์๋ก ๋๋ ค์ง๋๊ฒ ๋ง์ต๋๋ค
ใณใณ ๋ฐฐ์ด๋ก ๋ฐ๊พธ๊ฑฐ๋ ์ต์ด ํฌ๊ธฐ ํ ๋น์ผ๋ก ํด๋ด์ผ๊ฒ ๋ค์
Capacity is always greater than or equal to Count. If Count exceeds Capacity while adding elements, the capacity is increased by automatically reallocating the internal array before copying the old elements and adding the new elements.
https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.capacity?redirectedfrom=MSDN&view=netframework-4.7.2#System_Collections_Generic_List_
Capacity๋ฅผ ๋๋ํ๊ฒ ์ก์์ค๋ค๋ฉด ์๊ด์์
์์ฃผ ๋๋ํด
์ฌ์ด์ฆ๊ฐ sql ์จ์ผ ๋ ๊ฐ์ธ๋ฐ
ใ ใดใ
์ฌ์ด์ฆ ์์ฒด๊ฐ add()์ ์๋์ ์ํฅ์ ์ฃผ๋ ๊ฑด ์๋๊ณ , ์ต์ด ์ค์ ๋ ์ฌ์ด์ฆ๋ฅผ ๋์ด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ก ํ ๋นํ ์ผ์ด ์๊ธฐ๋ฉด ํ ๋น ๊ณผ์ ์์ ๋๋ ์ด๊ฐ ์ฌํ๊ฒ ๊ฑธ๋ฆผ. ์ด๊ธฐ ์บํผ์ํฐ๋ฅผ ๋๋ํ๊ฒ ํ๋ฉด ์๋ง ๊ด์ฐฎ์๊ฑฐ์. ์ค๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น/ํด์ ๋ง ์์ผ๋ฉด 6๋ง๊ฐ ์ ๋๋ก๋ ์ฒด๊ฐ๋ ์ ๋์ ๋๋ ์ด๋ ์ ๊ฑธ๋ฆฐ๋ค