์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- i-type
- ๋ฐ์ดํฐ ์ ์ก
- ์ค๋ ๋
- ๊ฐ๋ฐ์์ทจ์
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- 99ํด๋ฝ
- ํ๋ก์ด๋์์
- xv6
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- git merge
- IEEE 802
- ์ค๋ฅ์ ์ด
- ํ๋ ์ ๊ตฌ์กฐ
- ํ ํฐ ๋ฒ์ค
- ๋น์ฃผ๊ธฐ์ ํธ
- ์ฐ๋ถํฌdb
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- well known ํฌํธ
- mariadb
- leetcode
- ํญํด99
- tcp ํ๋กํ ์ฝ
- tcp ์ธ๊ทธ๋จผํธ
- ์ค๋ธ์
- reducible
- ์์๋ฒํธ
- ์ค๋ฅ๊ฒ์ถ
- ์ฃผ๊ธฐ์ ํธ
- til
- Today
- Total
Unfazedโ๏ธ๐ฏ
Collection.toArray(new T[0]) vs .toArray(new T[size]) / ์ปฌ๋ ์ ์ ๋ฐฐ์ด๋ก ๋ณํํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฑ๋ฅ ๋น๊ต ๋ณธ๋ฌธ
Collection.toArray(new T[0]) vs .toArray(new T[size]) / ์ปฌ๋ ์ ์ ๋ฐฐ์ด๋ก ๋ณํํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฑ๋ฅ ๋น๊ต
9taetae9 2024. 1. 14. 02:26Java์์ ์ปฌ๋ ์ ์ ๋ฐฐ์ด๋ก ๋ณํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ toArray(new T[0])์ toArray(new T[size])๋ก ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
๋ ๋ฐฉ๋ฒ ๋ชจ๋ ์ปฌ๋ ์ ์ ๋ชจ๋ ์์๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค. ๊ทธ๋ฌ๋ ์ฑ๋ฅ๋ฉด์์ ์ฐจ์ด๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ๋ฐฉ๋ฒ์ด ๋ ๊ถ์ฅ๋๋์ง ์์๋ณด๋ ค๊ณ ํ๋ค.
์ฑ๋ฅ ๋น๊ต ๋ฐ ๋ถ์
JMH(Java Microbenchmark Harness)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ JDK ๋ฒ์ ์์ ๋ค์ํ ์ปฌ๋ ์
ํฌ๊ธฐ์ ๋ํด ์ด ๋ ๋ฐฉ๋ฒ์ ์ฑ๋ฅ์ ์ธก์ ํ ์ํฐํด์ด ์์ด ํต์ฌ๋ง ์์ฝํด๋ณด๋ คํ๋ค.
์ฑ๋ฅ ์ธก์ ๊ฒฐ๊ณผ, toArray(new T[0]) ๋ฐฉ๋ฒ์ด toArray(new T[size]) ๋ฐฉ๋ฒ๋ณด๋ค ์ผ๊ด๋๊ฒ ๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ณด์๋ค. ์ด๋ ๋ฐฐ์ด ์ด๊ธฐํ ๊ณผ์ ์์์ ์ฐจ์ด ๋๋ฌธ์ธ๋ฐ, toArray(new T[0])๋ ๋ด๋ถ์ ์ผ๋ก ์ต์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํตํด ๋ฐฐ์ด์ ์์ฑํ๊ณ , ์ด ๊ณผ์ ์์ ๋ฐฐ์ด์ "zero initialization"์ ํผํ ์ ์๋ค. ๋ฐ๋ฉด, toArray(new T[size])๋ ์ฌ์ ์ ํ ๋น๋ ๋ฐฐ์ด์ "zero initialization"์ ํผํ ์ ์๊ณ JVM์ด ์ด ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ํ ๋นํ๊ณ ๊ด๋ฆฌํด์ผ ํ๋ ๋ถ๋ด์ด ์กด์ฌํด ์ฑ๋ฅ์ด ๋ค์ ๋จ์ด์ง๋ค.
๊ฒฐ๋ก
๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ฌ์ ์ ์ง์ (.toArray(new T[size]))ํ๋ ๋์ , JVM์ ์ํด ๋์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋๋ ๋ฐฐ์ด์ ์ฌ์ฉํจ์ผ๋ก์จ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ์ด๊ธฐํ ๊ณผ์ ์ ์ต์ ํํ ์ ์๋ค. ๋ฐ๋ผ์, ์ปฌ๋ ์
์ ๋ฐฐ์ด๋ก ๋ณํํ ๋๋ toArray(new T[0]) ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค.
๋ ์์ธํ ์ฑ๋ฅ ๋น๊ต ๋ด์ฉ์ ํ๋จ ๋งํฌ ์ฐธ๊ณ