- ๋ฐํ์์ ํ ๋น
- RAM์์ฒด์์ ํ ๋นํ ์ ์๋ ์คํ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ์ ํด์ ธ ์๊ธด ํ๋ค. ex) 3MB
- ๊ทธ ์์์ ๋์ ์ผ๋ก ๋์ด๋๋ค
์ฝ์ด ํ ๋น์ ๊ธฐ๋ค๋ฆด ๋๋ ์ค๋นํ. IO์์ ์ ๊ธฐ๋ค๋ฆด ๋๋ ๋๊ธฐํ. IO์์ ์ด ์๋ ํ๋ก์ธ์ค๋ ์ ๋ ๋๊ธฐํ์ ์๋ค์ด๊ฐ๋?
- IO์์ ๋ง๊ณ ๋, ์์ ํ๋ก์ธ์ค์ ์ข ๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆด ๋๋ ๋๊ธฐํ์ ๋ค์ด๊ฐ๊ธฐ๋ ํ๋ค. ์ฆ, CPU ๋ฐ์ด๋ ํ๋ก์ธ์ค๋ ๋๊ธฐํ์ ๋ค์ด๊ฐ ์ ์๋ค.
- ๊ฐ์ ์ฝ๋, ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ณ ์ถ์ ๋
- ๋์ผํ ๋ด์ฉ์ ํ๋ก๊ทธ๋จ์ ๋์์ ์คํํ๊ณ ์ถ์ ๋ : ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ & copy on write ์ฐธ๊ณ
- ์์์ ๋ถ๋ชจ์ ์ฃผ์ ๊ณต๊ฐ์ ๊ทธ๋๋ก ์ฐธ์กฐํ๋ค๊ฐ, ์์์ด write๋ฅผ ํด์ผํ๋ ์์ ์์๋ง ๋ณต์ฌ
IPC์์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ฉด ๋ณ๋ ฌ๋ก ์คํํ ์ ์์ด์ ์ข๋ค. ๋ชจ๋์ฑ์ผ๋ก ํด์ ์ข๋ค. ๋ชจ๋์ฑ์ด ๋ฌด์จ ์๋ฏธ?
- ์์คํ ๊ธฐ๋ฅ์ ๋ณ๋์ ํ๋ก์ธ์ค๋ก ๋๋ ๊ฒ ์๋๋ผ, ํ๋ก์ธ์ค ๋ฌถ์ ํ๋๋ก ๋ง๋๋ ๊ฒ.
- ๋ฌถ์ฌ์ง ํ๋ก์ธ์ค๋ค๋ผ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ด ์ด๋์ด๋ค.
- ์ ๊ธฐ์ ์๋ฏธํ๋ ๋ชจ๋์ ํ๋ก์ธ์ค์ ๋ฌถ์์ด๊ณ , ๋ชจ๋์์์๋ ํ๋ก์ธ์ค๋ค๋ผ๋ฆฌ ํ๋ ฅํ ์ ์๊ฒํ์
์์ผ์ ๋ฐ์ดํธ ์คํธ๋ฆผ๋ง ํต์ ํ๋ ์ ์์ค api์ธ๋ฐ, http ํ๋กํ ์ฝ์ ์ด๋ป๊ฒ ์ง์ํ๋๊ฑธ๊น์? http๋ ๋ฉ์์ง ๊ท๊ฒฉ์ด ์ ํด์ง ํ๋กํ ์ฝ ์๋๊ฐ?
- http๊ฐ ์ฐ๊ฒฐ๋ ๋๋ ์์ผ์ ์ฌ์ฉ (80ํฌํธ : wellknown ํฌํธ ์ค ํ๋. ๋ณดํต์ 1024์ด์์ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ค.)
- ํด๋ผ์ด์ธํธ๊ฐ 80ํฌํธ๋ก ์์ฒญ ๋ณด๋ด๋ฉด ์ฐ๊ฒฐ
- http๊ฐ ์์ผ ํต์ ์ ์๋์ง๋ง, ์์ผ์ ์ฌ์ฉํ๋ ๊ฑด ๋ง๋ค
- http๋ ์ธํฐ๋ท ์์ผ์ ์ฌ์ฉํ์ง๋ง, ์์ผ์ด http์ธ ๊ฒ์ ์๋๋ค. http๊ฐ ์์ผ ์์ ์๋ ๊ฐ๋
-
์คํ ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ ์ถ์ํํ ๊ฒ.
-
ํด๋ผ์ด์ธํธ ์คํ / RPC ์์คํ demon(์์ฒญ์ ๋ฐ๋ ์คํ ) / RPC ์๋ฒ ์คํ
- RPC ์์คํ demon(์์ฒญ์ ๋ฐ๋ ์คํ ) : ์ ์ ํ RPC ์คํ ํธ์ถ, ๋งค๊ฐ๋ณ์ ๊ฐ๊ณต ์์
-
java์ ๊ฒฝ์ฐ ์ต๋ ์ฌ์ด์ฆ๋ 30000์ฌ๊ฐ์ด๊ณ , ๋ํดํธ๋ก
logical cpu ํฌ๊ธฐ - 1๊ฐ๋งํผ ํ ๋น์ด ๋๋ค. -
์๋ฐ ๋ฌธ์๋ฅผ ๋ณด๋ฉด, ํ์ํ ๋งํผ ์ค๋ ๋๊ฐ ๊ณ์ ๋์ด๋๋ ๊ฒ ๊ฐ์ผ๋, ํ ์คํธ ํด๋ดค์ ๋
cpuํฌ๊ธฐ - 1๊ฐ์์ ๋ ๋์ด๋์ง ์์๋ค.// ํ ์คํธ ์ฝ๋ @Test void forkjoin() throws InterruptedException { final ForkJoinPool forkJoinPool = ForkJoinPool.commonPool(); for (int i = 0; i < 50; i++) { final int number = i; forkJoinPool.execute(() -> { System.out.println("size = " + forkJoinPool.getPoolSize()); }); } Thread.sleep(2000); }
TLS๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ์ฅ- https://learn.microsoft.com/ko-kr/windows/win32/procthread/thread-local-storage