์ถ์ฒ
ChatGPT
์บ์ ์ง์ญ์ฑ(Caching Locality)์ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ด ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ ๋, ๋ฐ์ดํฐ ์ ๊ทผ์ ํจํด์ด ์ด๋ป๊ฒ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ์์์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋์ง๋ฅผ ์ค๋ช ํ๋ ๊ฐ๋ ์ด๋ค. ์ด ๊ฐ๋ ์ ์ฑ๋ฅ ์ต์ ํ์ ๊ด๋ จ์ด ์์ผ๋ฉฐ, ํนํ CPU ์บ์์ ๋ฉ๋ชจ๋ฆฌ์ ํจ์จ์ ์ธ ์ฌ์ฉ์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
์บ์ ์ง์ญ์ฑ์ ์ ํ
์บ์ ์ง์ญ์ฑ์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค:
1. ์๊ฐ์ ์ง์ญ์ฑ Temporal Locality
์ ์
์ต๊ทผ์ ์ ๊ทผํ ๋ฉ๋ชจ๋ฆฌ ์์น๋ ์์ผ๋ก๋ ๋ค์ ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ์์น์ด๋ค. ์๋ฅผ ๋ค์ด, ์ต๊ทผ์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ๋ ๊ฐ๊น์ด ๋ฏธ๋์๋ ๋ค์ ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค.
์์
๋ฐ๋ณต์ ์ธ ๋ฃจํ์์ ๋์ผํ ๋ฐฐ์ด ์์๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ๊ทผํ ๋ ์๊ฐ์ ์ง์ญ์ฑ์ด ๋๋ค. ๊ฐ์ ๋ฐ์ดํฐ์ ์ฌ๋ฌ ๋ฒ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ CPU ์บ์๊ฐ ์ด๋ฅผ ์ ์ฅํด ๋๋ฉด ์ฑ๋ฅ์ด ํฅ์๋๋ค.
2. ๊ณต๊ฐ์ ์ง์ญ์ฑ Spatial Locality
์ ์
ํ์ฌ ์ ๊ทผํ ๋ฉ๋ชจ๋ฆฌ ์์น ๊ทผ์ฒ์ ์๋ ๋ฐ์ดํฐ๋ ๊ฐ๊น์ด ๋ฏธ๋์ ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ์์น์ด๋ค. ์ฆ, ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์์ ์๋ก ๊ฐ๊น์ด ์์น์ ์์ ๋ ๊ณต๊ฐ์ ์ง์ญ์ฑ์ด ๋๋ค.
์์
๋ฐฐ์ด์ ์ฐ์์ ์ธ ์์์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ๊ฐ ์ด์ ํด๋นํ๋ค. ๋ฐฐ์ด ์์๋ค์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์, ๋ฐฐ์ด์ ์ํํ ๋๋ ๋์ ๊ณต๊ฐ์ ์ง์ญ์ฑ์ ๊ฐ์ง๋ค.
์บ์ ์ง์ญ์ฑ๊ณผ `ArrayList`์ ์ฑ๋ฅ
์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก
ArrayList`๋ ๋ด๋ถ์ ์ผ๋ก ๋์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ์ด๋ฌํ ๋ฐฐ์ด์ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก ๋๋ถ์, `ArrayList`๋ฅผ ์ํํ ๋ ์บ์ ์ง์ญ์ฑ์ด ๋๋ค. ์ฆ, ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ํจํด์ด ์ฐ์์ ์ด์ด์, CPU ์บ์๋ ๋ฐฐ์ด์ ์์๋ฅผ ํ ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ด๋ค์ฌ ์บ์์์ ์ฌ์ฌ์ฉํ ์ ์๋ค.
ํจ์จ์ ์ธ ์บ์ ํ์ฉ
์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ ๊ฒ์ CPU ์บ์์ ํจ์จ์ฑ์ ๋์ด๋ ๋ฐ ๋์์ด ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ฐ์์ ์ผ๋ก ๋ฐฐ์น๋๋ฉด, CPU ์บ์๊ฐ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ค์ผ ๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ต์ ํํ ์ ์๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ์ ๊ทผ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ , ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ด ํฅ์๋๋ค.
์บ์ ์ง์ญ์ฑ์ ์ด์
์๋ ํฅ์
๋์ ์บ์ ์ง์ญ์ฑ ๋๋ถ์ ๋ฐ์ดํฐ ์ ๊ทผ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ๋๊ธฐ ์๊ฐ์ด ์ค์ด๋ ๋ค.
CPU ์บ์ ํจ์จ
๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ CPU ์บ์๋ก ์ฎ๊ธธ ๋ ์บ์ ์ง์ญ์ฑ์ด ์ข์ผ๋ฉด, ์บ์๊ฐ ๋ ํจ์จ์ ์ผ๋ก ๋์ํ๊ณ , ํ๋ก๊ทธ๋จ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ด ํฅ์๋๋ค.
๊ฒฐ๋ก
์บ์ ์ง์ญ์ฑ์ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ์ต์ ํํ๋ ์ค์ํ ๊ฐ๋ ์ด๋ค. ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์บ์ ์ง์ญ์ฑ์ ํ์ฉํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. `ArrayList`๋ ์ด๋ฐ ํน์ฑ์ ๊ฐ๊ณ ์์ด, ์์๋ฅผ ์ํํ ๋ ํจ์จ์ ์ผ๋ก CPU ์บ์๋ฅผ ํ์ฉํ ์ ์๋ค.
'๋น ๊ตฌ๋ฉ ์ฑ์ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] Set๊ณผ Map์ ์ฐจ์ด์ (0) | 2024.09.03 |
---|---|
[Java] ArrayList์ LinkedList์ ์์ ์ํ ์ ์ฑ๋ฅ ์ฐจ์ด (1) | 2024.09.03 |
[Java] ArrayList ๋ด๋ถ ๊ตฌํ (0) | 2024.09.03 |
[Java] ArrayList ์ฌ์ฉ์ ์ฃผ์ํด์ผ ํ ์ (1) | 2024.09.03 |
[ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ ] ๋์ ๋ฐฐ์ด๊ณผ ์ ์ ๋ฐฐ์ด (0) | 2024.08.30 |