ํ๋ซํผ : Linux
์ํคํ ์ฒ : x86_64
๋ฐ์ด๋๋ฆฌ์์ ๋ฐ์ํ ๋ฌธ์ ์ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ด๋ฅผ ์ฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํด์ฃผ์ธ์.
AdoptOpenJDK 11.0.9 ๋น๋๋ Shenandoah GC๋ฅผ ํฌํจํ์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.
GC๋ฅผ ํฌํจํด์ผํฉ๋๊น?
OpenJDK wiki ์ ๋ฐ๋ฅด๋ฉด ๋ฉ์ธ ๋ผ์ธ ๋น๋์ ์์ด์ผํฉ๋๋ค.
_In mainline OpenJDK 11u builds since 11.0.9._
v11.0.9์์ GC๋ฅผ ํ์ฑํํ๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํฉ๋๋ค.
~ % docker run -it openjdk:11-jre-buster
root<strong i="17">@6e987dc384f8</strong>:/# java -version
openjdk version "11.0.9" 2020-10-20
OpenJDK Runtime Environment 18.9 (build 11.0.9+11)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11, mixed mode)
root<strong i="18">@6e987dc384f8</strong>:/# java -XX:+UseShenandoahGC -Xlog:gc -version
Unrecognized VM option 'UseShenandoahGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Zulu OpenJDK 11.0.9 + 11 ๋น๋์์ ์ฌ์ฉํ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
~ % java -XX:+UseShenandoahGC -Xlog:gc -version
[0.005s][info][gc] Heuristics ergonomically sets -XX:+ExplicitGCInvokesConcurrent
[0.005s][info][gc] Heuristics ergonomically sets -XX:+ShenandoahImplicitGCInvokesConcurrent
[0.005s][info][gc] Using Shenandoah
openjdk version "11.0.9" 2020-10-20 LTS
OpenJDK Runtime Environment Zulu11.43+21-CA (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM Zulu11.43+21-CA (build 11.0.9+11-LTS, mixed mode)
[0.052s][info][gc] Cancelling GC: Stopping VM
AdoptOpenJDK 11.0.9 ๋น๋๋ Shenandoah GC๋ฅผ ํฌํจํ์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
๋ฅ.
GC๋ฅผ ํฌํจํด์ผํฉ๋๊น?
์, https://github.com/AdoptOpenJDK/openjdk-build/pull/2125๋ฅผ ์ฐธ์กฐ
์ค๊ฐ์ Docker์์ด :
jdk-11.0.9+11/bin/java -XX:+UseShenandoahGC -Xlog:gc -version
Unrecognized VM option 'UseShenandoahGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
root<strong i="13">@bb000aee1f7d</strong>:/# jdk-11.0.9+11/bin/java -version
openjdk version "11.0.9" 2020-10-20
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)
์ด @ marko-asplund๋ฅผ๋ณด๊ณ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ๐ฅ
์ด @ marko-asplund๋ฅผ๋ณด๊ณ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ๐ฅ
AdoptOpenJDK ํ๋ก์ ํธ์ ์ฐธ์ฌ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐ ๐
์งํ์ค์ธ ์ ๋ฐ์ดํธ ๋ bulids๊ฐ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
[sxa<strong i="6">@sainz</strong> bin]$ ./java -XX:+UseShenandoahGC -Xlog:gc -version
[0.014s][info][gc] Heuristics ergonomically sets -XX:+ExplicitGCInvokesConcurrent
[0.014s][info][gc] Heuristics ergonomically sets -XX:+ShenandoahImplicitGCInvokesConcurrent
[0.017s][info][gc] Using Shenandoah
openjdk version "11.0.9" 2020-10-20
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)
[0.112s][info][gc] Cancelling GC: Stopping VM
[sxa<strong i="7">@sainz</strong> bin]$
Shenandoah ์ง์ ๋น๋๋ ๊ด๋ จ ํ๋ซํผ์ ๋ํด jdk-11.0.9 + 11.1๋ก ์น ์ฌ์ดํธ์ ์์ต๋๋ค.
๊ณ ๋ง์์! ๐ ๐ ๐
@sxa ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๐
Btw, ์ฌ๋ฌ๋ถ๋ ๊ณต์ adaptopenjdk ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ณต๊ฐํ๊ณ ์์ต๋๊น?
11.0.9 ๋ฐ Shenandoah๋ก adoptopenjdk:11-jre-hotspot
๋ณํ์ ์ป๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ง๋ญ๋๋ค. ์ธ๋ถ ์กฐ์ง๊ณผ์ ๊ณต๋ ์์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ํญ์ ๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. PR์ด ์์ต๋๋ค : https://github.com/docker-library/official-images/pull/8953
์- .1
๋ฆด๋ฆฌ์ค๊ฐ์๋ ์ผ๋ถ ๋์ปค ํ๋ซํผ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ผ๋ถ ์์ ์ด ์ด๋ฃจ์ด์ ธ์ผํ๋ฏ๋ก ์ฝ๊ฐ์ ์ง์ฐ์ด ์์์ผ๋ฏ๋ก ํ์คํ ์ฌ์ฉํ ์์๊ฒ ๋ ๊ฒ์
๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
AdoptOpenJDK ํ๋ก์ ํธ์ ์ฐธ์ฌ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐ ๐