åæã¯ãã¡ãã
The original article was written by Alina Yurenko (Developer Advocate for GraalVM, Oracle Labs).
https://medium.com/graalvm/welcome-graalvm-for-jdk-24-7c829fe98ea1
æ¬æ¥ãGraalVM for JDK 24ããªãªãŒã¹ããŸããã
https://www.graalvm.org/downloads/
ãããŸã§éããJava 24ã®ãªãªãŒã¹æ¥ã«ããããŠGraalVMããªãªãŒã¹ããŸããããã«ãããJava 24 JDKãšããŠGraalVMããå©çšããã ããŸãã
ãã§ã«GraalVMã®ããŠã³ããŒãããªãªãŒã¹ããŒãã§è©³çްãã確èªããã ããç¶æ ã§ãããã®ãšã³ããªãèªã¿é²ããŠãä»åã®ãªãªãŒã¹ã§æ°ãã«è¿œå ãããæ©èœãã芧ãã ããã
Release notes
https://www.graalvm.org/release-notes/JDK_24/
More Peak Performance with Machine Learning ð
Native Imageã«ãããMLããŒã¹ã®ãããã¡ã€ã«æšè«ã«ã€ããŠã¯ããåç¥ã®æ¹ãããã£ããããããããŸããã
Machine Learning-Driven Static Profiling for Native Image
https://medium.com/graalvm/machine-learning-driven-static-profiling-for-native-image-d7fc13bb04e2
https://logico-jp.dev/2024/12/28/machine-learning-driven-static-profiling-for-native-image/
ãŠãŒã¶ãŒãæäŸãããããã¡ã€ãªã³ã°æ å ±ãååšããªãå ŽåãOracle GraalVMã®Native Imageã¯äºååŠç¿æžã¿ã®MLã¢ãã«ã䜿çšããŠãå¶åŸ¡ãããŒã°ã©ãã®åå²ã®å®è¡ç¢ºçãäºæž¬ããŸããããã«ãããNative Imageã®ããŒã¯æ§èœããã®ãŸãŸåäžããã匷åãªæé©åãå¯èœã«ãªããŸããä»åã®ãªãªãŒã¹ã§ã¯ãæ°äžä»£ã®ML察å¿ãããã¡ã€ã«æšè«ã§ããGraalNNãå°å ¥ããŠããŸãã
GraalNN: Context-Sensitive Static Profiling with Graph Neural Networks
https://2025.cgo.org/details/cgo-2025-papers/45/GraalNN-Context-Sensitive-Static-Profiling-with-Graph-Neural-Networks
GraalNN ã«ãããå¹ åºããã€ã¯ããµãŒãã¹ãã³ãããŒã¯ïŒMicronautãSpringãQuarkus ãªã©ïŒã«ãããŠãå¹³åã§çŽ 7.9% ã®ããŒã¯ããã©ãŒãã³ã¹ã®åäžã確èªãããŠããŸãã

ãã®æé©åãæå¹ã«ããã«ã¯ã-O3ïŒããŒã¯ããã©ãŒãã³ã¹ã®æé©åïŒãã©ã°ãOracle GraalVM Native Imageã«æž¡ãå¿
èŠããããŸãããã®ã¢ãããŒãã§ã¯ãã¬ãŒãã³ã°å®è¡ãšãã©ããŒã¢ãããã«ãã¯äžèŠã§ããã1åã®ãã«ãã ãã§ããŒã¯ã¹ã«ãŒãããã®åäžãåŸãããããšã«æ³šæããŠãã ããã
å®è£ ã®è©³çްã«ã€ããŠã¯ãä»å¹Žã® International Symposium on Code Generation and Optimization (CGO) ã§çºè¡šäºå®ã®è«æGraalNN: Context-Sensitive Static Profiling with Graph Neural Networksãã芧ãã ãããåŒç€Ÿã§ã¯ããã®æé©åã®ãããªãæ¹åã«åãçµãã§ããŸããJDK 25 åãã® GraalVM ã§ã¯ãããã«é«ãããã©ãŒãã³ã¹ãæåŸ ããŠãã ããã
Even Smaller Native Executables ðŠ
GraalVM Native Imageã®ãã«ãããã»ã¹ã«ãããŠãpoint-toè§£æã¯éèŠãªéšåã§ããJavaãããžã§ã¯ãã«ã¯äŸåé¢ä¿ç±æ¥ã§æ°äžãã®ã¯ã©ã¹ãå«ãŸããããšããããŸãããå°éå¯èœãªã¯ã©ã¹ãã¡ãœããããã£ãŒã«ããè§£æããããšã§ããã¹ãŠã®ã¡ãœããã®ã³ã³ãã€ã«ãåé¿ã§ããŸãã
ä»åã®ãªãªãŒã¹ã§ã¯ãSkipFlowãå°å ¥ããŠããŸããããã¯ãpoint-toè§£æã®æ¡åŒµæ©èœã§ãè§£æå®è¡äžã«åºæ¬å€ã远跡ããå岿¡ä»¶ãè©äŸ¡ããŸããããã«ããããã«ãæéã®é·æåãé¿ããªãããçŽ6.35%å°ãããã€ããªãçæã§ããããã«ãªããŸãããå®éãSkipFlowãæå¹ã«ãããšãè§£æããã³ã³ã³ãã€ã«ããã¡ãœãããå°ãªããªããããã€ã¡ãŒãžã®ãã«ããããã«è¥å¹²é«éåããåŸåããããŸãã

ãã®æé©åã®è©³çްã«ã€ããŠã¯ãåœç€Ÿã®CGOã®è«æãSkipFlow: Improving the Precision of Points-to Analysis using Primitive Values and Predicate Edgesãããã³è¿æ¥äžã«å ¬éäºå®ã®ç¶å ±ããã°èšäºãã芧ãã ããã
SkipFlow: Improving the Precision of Points-to Analysis using Primitive Values and Predicate Edges
https://2025.cgo.org/details/cgo-2025-papers/17/SkipFlow-Improving-the-Precision-of-Points-to-Analysis-using-Primitive-Values-and-Pr
ãã®æé©åã¯GraalVM 24ã«å®éšçãªæ©èœãšããŠå«ãŸããŠããŸããããŸã ããã©ã«ãã§ã¯æå¹ã«ãªã£ãŠããŸããã-H:+TrackPrimitiveValuesããã³-H:+UsePredicatesãã©ã°ã䜿ã£ãŠãã¹ãã§ããŸããGraalVM for JDK 25ã§ããã©ã«ãã§æå¹ã«ããäºå®ã§ãã®ã§ããæèŠããå¯ããã ããã
Premain Support for Java Agents ð¥·
ãŠãŒã¶ãŒãšããŒãããŒã®äž¡æ¹ããå ±éããŠå¯ããããèŠæã®1ã€ããNative Imageã«ãããJavaãšãŒãžã§ã³ãã®ãµããŒãæ¡åŒµã§ããããããŸã§ããšãŒãžã§ã³ãã¯Native Imageã§ãµããŒããããŠã¯ãããã®ã®ãããã€ãã®å¶çŽããããŸããã
- ãšãŒãžã§ã³ãã¯ãã«ãæã«ãã¹ãŠã®ã¯ã©ã¹ãå®è¡ããŠå€æããå¿ èŠããã£ã
- ãšãŒãžã§ã³ãã®premainã¯ãã«ãæã«ã®ã¿å®è¡
- ãã¹ãŠã®ã¯ã©ã¹ããšãŒãžã§ã³ãJARã«ååšããå¿ èŠããã£ã
- ãšãŒãžã§ã³ãã¯Native Imageã§äœ¿çšãããã¯ã©ã¹ãæäœããŠã¯ãããªãã£ã
ä»åã®ãªãªãŒã¹ã§ã¯ãå®è¡æã«ããããšãŒãžã§ã³ãã®ãµããŒãã«åããç¬¬äžæ©ãèžã¿åºããŸãããéçãšãŒãžã§ã³ãã®premainã®ãµããŒãã远å ããçŸåšã¯æ¬¡ã®ããã«åäœããŸãã
Add premain for static agent support #8988
https://github.com/oracle/graal/pull/8988
- ã³ã³ãã€ã«æã«ã
-H:PremainClasses=ã䜿çšããŠpremainã¯ã©ã¹ãèšå® - å®è¡æã«ã
-XX-premain:[class]:[options]ã䜿çšããŠãã¬ã¡ã€ã³ã®å®è¡æãªãã·ã§ã³ãèšå®
ããã«ãããNative Imageãå®éã«å®è¡ãããéã«ãpremainã¡ãœãããåæåã§ããããã«ãªããŸããã
ãã®æ©èœãžã®è²¢ç®ã«å¯ŸããŠãAlibabaã«æè¬ããããŸãã
JDK 25ã§ã¯ãGraalVMã§ããã«å€ãã®äœæ¥ãäºå®ããŠããŸãããããŸã§ã®éãNative Imageã§äœ¿çšããããšãŒãžã§ã³ããæããŠããã ãããšå©ãããŸããGitHubã®ãã±ãããŸãã¯åœç€Ÿã®ã³ãã¥ããã£ãã©ãããã©ãŒã ãããç¥ãããã ããã
[GR-55707] Java Agents Support in Native Image #8177
https://github.com/oracle/graal/issues/8177
GraalVM Community
https://www.graalvm.org/community/
Vector API support in Native Image ð
Vector APIã¯ãæé©ãªãã¯ãã«åœä»€ã«ç¢ºå®ã«ã³ã³ãã€ã«ãããã¯ãã«èšç®ãå¯èœã«ããåçã®ã¹ã«ã©ãŒèšç®ãããåªããããã©ãŒãã³ã¹ããããããŸãã
JEP 469: Vector API (Eighth Incubator)
https://openjdk.org/jeps/469
ãã®ãªãªãŒã¹ã§ã¯ãGraalVMäžã§ããå€ãã®Vector APIæŒç®ãæé©åããããã®äœæ¥ãç¶ç¶ããã¿ãŒã²ããã»ããŒããŠã§ã¢ã§ãµããŒããããŠããå Žåãããå€ãã®æŒç®ãSIMDã³ãŒãã«å¹ççã«ã³ã³ãã€ã«ãããããã«ãªããŸããã
- Vector APIãã¹ã¯ã®æŒç®
- ãã¹ã¯ããããã¯ã¿ãŒAPIã®ããŒããšã¹ãã¢
- äžè¬çãªVector APIåé 眮æŒç®
- ã¡ã¢ãªã»ã°ã¡ã³ããžã®ããŸãã¯ã¡ã¢ãªã»ã°ã¡ã³ãããã®Vector APIããŒã/ã¹ãã¢
ããã«ãNative Imageã®Vector APIãµããŒããJITãšåçã«ãªã£ãããšãçºè¡šã§ããããšãå¬ããæããŸããNative Imageã®ãã«ãæã«Vector APIã®æé©åãæå¹ã«ããã«ã¯ããã«ãæã«--add-modules jdk.incubator.vectorãš-H:+VectorAPISupportãªãã·ã§ã³ãæž¡ãå¿
èŠããããŸãã
Vector APIãçã«èŒãåéã®ã²ãšã€ã¯ãå€§èŠæš¡èšèªã¢ãã« (Large Language Models, LLM) ã§ããèšç®è² è·ã®é«ãæŒç®ã®ã»ãšãã©ãè¡åãšãã¯ãã«ã®ä¹ç®ã ããã§ããäŸãšããŠãæã ã®ååAlfonso² Peterssenã®è¶£å³ã®ãããžã§ã¯ãã§ããLlama3.javaãã芧ãã ããã
Practical Llama 3 inference in Java
https://github.com/mukel/llama3.java
Alfonso² Peterssen
https://github.com/mukel
ããã¯çŽç²ãªJavaã§å®è£ ããã1ãã¡ã€ã«ã®ããŒã«ã«LLMæšè«ãšã³ãžã³ã§ãJavaã®VectorãšFFM APIã®ææ°æ©èœãšãGraalVMã«ãã匷åãªæé©åãå©çšããŠããŸããããããã¹ãŠãçµã¿åãããããšã§ãGraalVM Native Imageã§ã³ã³ãã€ã«ãããçŽç²ã«CPUäžã§åäœãããéåžžã«é«éãªããŒã«ã«LLMã¢ã·ã¹ã¿ã³ããæã«ã§ããŸãã
GraalVMã®æé©åã«ãããã¢ãã«ã® ãåå¿ ãã¯é©ãã»ã©éãããšããããããšæããŸãããã®ãã¢ã§ã¯ã4.5ããã/ãŠã§ã€ãéååã®1Bãã©ã¡ãŒã¿Llama 3.2ã¢ãã«ã52.25ããŒã¯ã³/ç§ã§å®è¡ãããŠããŸããããã«ããã«ãæã«ã¢ãã«ãããªããŒããããªã©ãããç©æ¥µçãªAOTæé©åãå©çšããããšã§ãã¹ã¿ãŒãã¢ããã®ãªãŒããŒããããå®å šã«ãªãããŠããŸãã
AOT model preloading
https://github.com/mukel/llama3.java?tab=readme-ov-file#aot-model-preloading
GraalVMäžã®Vector APIãµããŒãã¯å®éšçã§ããç¹ã«ã泚æãã ãããæé©åãããVector APIæäœã®æ°ãããã«æ¹åããããããã£ãŒãããã¯ãããã ããã°å¹žãã§ãã
Full support for Vector API in GraalVM #10285
https://github.com/oracle/graal/issues/10285
More efficient applications with Native Image ð¿
Native Imageã¯ãã¢ããªã±ãŒã·ã§ã³ã®é«éèµ·åãäœã¡ã¢ãªãäœCPU䜿çšçãã³ã³ãã¯ããªããã±ãŒãžã³ã°ã§ããç¥ãããŠããŸããæè¿ãã³ãã¥ããã£ããã®é¢å¿ãé«ãŸã£ãŠããNative Imageã®ããäžã€ã®åŽé¢ããããŸããããã¯ãªãœãŒã¹ã®ç¯çŽã§ããAOTã³ã³ãã€ã«ãšæé©åã®ãããã§ãNative Imageã¢ããªã±ãŒã·ã§ã³ã¯ããå¹ççã«å®è¡ããããšãã§ããé»å䜿çšéãå«ããªãœãŒã¹æ¶è²»éãåæžã§ããŸããäŸãšããŠãJITãšNative Imageã§åäœããSpring PetClinicã®ãšãã«ã®ãŒæ¶è²»éããè² è·ãå¢å ããããã€ãã®ã·ããªãªã§æž¬å®ããŸããã
A sample Spring-based application
https://github.com/spring-projects/spring-petclinic
| ã·ããªãªA | 1åã®curlãªã¯ãšã¹ããcurlã¬ã¹ãã³ã¹ã®åŸ1ç§ |
| ã·ããªãªB | 1åã®curlãªã¯ãšã¹ããåèšå®è¡æé10ç§ |
| ã·ããªãªC | 4000ãªã¯ãšã¹ã/ç§ã20ç§ |
| ã·ããªãªD | 4000ãªã¯ãšã¹ã/ç§ã100ç§ |

ã芧ã«ãªããšãããããã«ãNative Imageã¢ããªã±ãŒã·ã§ã³ã¯ ãäžå®ã®è² è·ãããã£ãç¶æ ã§ããäžè²«ã㊠æ¶è²»é»åãå°ãªãããšãããããŸããç§ãã¡ã®æåã®èª¿æ»çµæã¯ãIonut Balosinã宿œããã³ãã¥ããã£ã«ããç ç©¶ãšãäžèŽããŠããŸãã
Analyzing JVM Energy Consumption for JDK 21: An Empirical Study
https://ionutbalosin.com/2024/03/analyzing-jvm-energy-consumption-for-jdk-21-an-empirical-study/
ã¢ããªã±ãŒã·ã§ã³ã®ãªãœãŒã¹äœ¿çšéãåæžããæ¹æ³ããæ¢ããªããGraalVMã§ã®ã³ã³ãã€ã«ããæ€èšãã ããã
New security features in Native Imageð¡ïž
ãåç¥ãããããŸããããOracle GraalVMã®Native Imageã¯ãè匱æ§ã¹ãã£ã³ã«äžå¯æ¬ ãªSBOMãµããŒããæäŸããŠããŸããCycloneDXãã©ãŒãããã§SBOMãã¡ã€ã«ãçæããã«ã¯ããã€ãã£ãå®è¡ãã¡ã€ã«ã«åã蟌ãå Žåã¯--enable-sbomãã©ã°ãããªãœãŒã¹ãã¹ã«è¿œå ãããJSONãšããŠãšã¯ã¹ããŒãããå Žåã¯--enable-sbom=classpath,exportãã©ã°ãæž¡ãå¿
èŠããããŸãã
ãã®ãã©ã°ã䜿çšãããšãã©ã®ãããžã§ã¯ãã§ããã®æ¹æ³ã§SBOMãçæã§ããŸãããããã«æ£ç¢ºãªSBOMã®ããã«ã¯ã GraalVM Native Imageçšã®Mavenãã©ã°ã€ã³ã䜿çšããããšããå§ãããŸãã
Maven plugin for GraalVM Native Image
https://graalvm.github.io/native-build-tools/latest/maven-plugin.html
ãã®ãã©ã°ã€ã³ã¯ãcyclonedx-maven-pluginã䜿çšããŠããŒã¹ã©ã€ã³SBOMãäœæããŸããããŒã¹ã©ã€ã³SBOMã§ã¯ãã·ã§ãŒãã£ã³ã°ããã¡ããJARã䜿çšãããšãã«åä»ãªäœæ¥ã§ãããNative Imageãã¯ã©ã¹ãããããã®ã³ã³ããŒãã³ããžã®é¢é£ä»ãã®ããã«ãã©ã®ããã±ãŒãžåãã³ã³ããŒãã³ãã«å±ããããå®çŸ©ããŸãããã®å調çãªã¢ãããŒãã§ãNative Image ã¯ã³ã³ããŒãã³ããšäŸåé¢ä¿ãããç©æ¥µçã«åé€ããæå°éã® SBOM ãäœæã§ããŸãã
ãããã®æ©èœåŒ·åã¯ãã©ã°ã€ã³ããŒãžã§ã³ 0.10.4 ããå©çšå¯èœã§ã--enable-sbomãªãã·ã§ã³ã䜿çšãããšããã©ã«ãã§æå¹ã«ãªããŸãã
ãã®ãªãªãŒã¹ã§ã¯ãäŸåé¢ä¿ããªãŒã®ãµããŒãã远å ãããŸãããSBOMã¯ãCycloneDXäŸåé¢ä¿ãã£ãŒã«ããã©ãŒãããã䜿ããã³ã³ããŒãã³ãã®é¢ä¿ã«ã€ããŠã®æ
å ±ãæäŸããããã«ãªããŸããããã®äŸåé¢ä¿æ
å ±ã¯ãNative Imageã®éçè§£æåŒã³åºãã°ã©ãããååŸããŸããäŸåé¢ä¿ã°ã©ããåæããããšã§ãç¹å®ã®ã³ã³ããŒãã³ããã¢ããªã±ãŒã·ã§ã³ã«å«ãŸããçç±ãçè§£ã§ããŸããäŸãã°ãSBOMã§äºæããªãã³ã³ããŒãã³ããçºèŠãããšãäŸåé¢ä¿ã°ã©ãã䜿ã£ãŠãã®ã³ã³ããŒãã³ããå«ãŸããŠããããšã远跡ããã¢ããªã±ãŒã·ã§ã³ã®ã©ã®éšåã§ãã®ã³ã³ããŒãã³ãã䜿çšãããŠããããç¹å®ã§ããŸãã
ããã«ãSBOMã³ã³ããŒãã³ãã«å¯Ÿããã¯ã©ã¹ã¬ãã«ã®ã¡ã¿ããŒã¿ã®ãµããŒãã远å ããŸãããããã¯--enable-sbom=class-levelã§æå¹ã«ã§ããŸãããã®ã¡ã¿ããŒã¿ã«ã¯ããã€ãã£ãå®è¡å¯èœãã¡ã€ã«ã®äžéšã§ãã Javaã¢ãžã¥ãŒã«ãã¯ã©ã¹ãã€ã³ã¿ãã§ãŒã¹ãã¬ã³ãŒããã¢ãããŒã·ã§ã³ãåæåãã³ã³ã¹ãã©ã¯ã¿ããã£ãŒã«ããã¡ãœãããå«ãŸããŠããŸãããã®æ
å ±ã¯ã圱é¿ãåãã SBOM ã³ã³ããŒãã³ããå«ããã€ãã£ãå®è¡å¯èœãã¡ã€ã«ãå®éã«è匱ã§ãããã©ããã倿ããããã®é«åºŠãªè匱æ§ã¹ãã£ã³ããè匱æ§ã¹ãã£ã³ã®åœéœæ§çãäœæžããããã®ããŸããã€ãã£ãå®è¡å¯èœãã¡ã€ã«ã«ã©ã®ã³ã³ããŒãã³ããå«ãŸããŠããããããããçè§£ããããã®ã¹ãã£ã³ã«æçšã§ããã¯ã©ã¹ã¬ãã«ã®ã¡ã¿ããŒã¿ãå«ãããšãSBOM ã®ãµã€ãºã倧å¹
ã«å¢å€§ããããšã«æ³šæããŠãã ããããã€ãã£ãå®è¡ãã¡ã€ã«ã®å
容ã«é¢ããè©³çŽ°ãªæ
å ±ãå¿
èŠãªå Žåã«ã®ã¿ãã¡ã¿ããŒã¿ãå«ããããã«ããŠãã ããã
ãŸãã GraalVMã®GitHubã¢ã¯ã·ã§ã³ã«ãSBOMãµããŒãã远å ããŸããã
GitHub Action for setting up GraalVM distributions.
https://github.com/graalvm/setup-graalvm
Native Imageãšãšãã«éåžžã«æ£ç¢ºãªSBOMãèªåçã«çæããGitHubã®äŸåé¢ä¿éä¿¡çšAPIã«éä¿¡ã§ããããã«ãªããŸããã
REST API endpoints for dependency submission
https://docs.github.com/en/rest/dependency-graph/dependency-submission?apiVersion=2022-11-28
ããã«ãããGitHubãæäŸãããã¹ãŠã®åŒ·åãªã»ãã¥ãªãã£ã»ããŒã«ãšã®ã·ã³ãã«ãªçµ±åãå¯èœã«ãªããŸãã
- GitHub Dependabotã«ããè匱æ§ã®è¿œè·¡
- GitHub Dependency Graphã䜿ã£ãäŸåé¢ä¿ã®è¿œè·¡ãDependency Graphã¯ãæåºãããSBOMã³ã³ããŒãã³ããšGitHubãèªåçã«æšæž¬ãããã®ã®çµåã衚瀺ããŸãã
About Dependabot
https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide#about-dependabot
About the dependency graph
https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph
ãã®æ©èœã¯setup-graalvmã®native-image-enable-sbomãªãã·ã§ã³ã§æå¹ã«ã§ããŸãã

Build reports
Native Imageã®ãã«ããšçæãããå®è¡ãã¡ã€ã«ã®å 容ãããããçè§£ããããã«ããã«ãã¬ããŒãã䜿çšã§ããŸãããã«ãã¬ããŒãã¯Native Imageã®ãã«ããšäžç·ã«çæãããHTMLã®ã¬ããŒãã§ã以äžã®è©³çްæ å ±ãæäŸããŸãã
| ãã«ãæŠèŠ | ãã«ãç°å¢ãè§£æçµæããªãœãŒã¹äœ¿çšéãªã© |
| ã³ãŒããšãªã¢ãšã€ã¡ãŒãžããŒã | ã¢ããªã±ãŒã·ã§ã³ãæ§æããã¡ãœããããªããžã§ã¯ããçè§£ããã®ã«æçš |
| Resources ã¿ã | å«ãŸãããªãœãŒã¹ãèŠã€ãããªããªãœãŒã¹ãæ³šå ¥ããããªãœãŒã¹ïŒãã¬ãŒã ã¯ãŒã¯ãªã©ïŒã瀺ã |
| SBOMæ å ± | JSONãšããŠããšã¯ã¹ããŒãå¯èœ |
| ãããã¡ã€ãªã³ã°æ å ±ã®èŠèŠå | ãã¬ãŒã ã°ã©ããšãã¹ãã°ã©ã ãšããŠè¡šçŸ ïŒãããã¡ã€ã«ã®æäŸãå¿ èŠïŒ |

ãã«ãã»ã¬ããŒãã䜿ãå§ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãã«ãæã«--emit build-reportãæž¡ãå¿
èŠããããŸãããã«ãã»ã¬ããŒãã®è©³çްã«ã€ããŠã¯ãããã¥ã¡ã³ããåç
§ããŠãã ããã
Native Image Build Report
https://www.graalvm.org/latest/reference-manual/native-image/overview/build-report/
Debugging updates
ãã®ãªãªãŒã¹ã§ã¯ããããã°ã«ã€ããŠãããã€ãã¢ããããŒãããŠããŸãã
GDB Python ã¹ã¯ãªãã (gdb-debughelpers.py) ã远å ãããã€ãã£ãã»ã€ã¡ãŒãžã®ãããã°äœéšãæ¹åããŸããã
Debug Native Executables with a Python Helper Script
https://www.graalvm.org/dev/reference-manual/native-image/guides/debug-native-image-process-with-python-helper-script/

Windows x64 ã®ã¢ã³ã¯ã€ã³ãæ å ±ãåºåãããµããŒãã远å ããŸãããããã«ããããããã¬ããããã¡ã€ã©ãªã©ã®ãã€ãã£ãããŒã«ã§ã®ã¹ã¿ãã¯ãŠã©ãŒãã³ã°ãå¯èœã«ãªããŸããã
ãããã°æ å ±ã DWARF4ããDWARF5ã«æŽæ°ããDWARFååäœã§åæ å ±ãæ ŒçŽããããã«ããŸãããããã«ããããããã°æ å ±ã®ãµã€ãºã 30%åæžã§ããŸããã
Monitoring updates ð
LinuxãšmacOSã§ã®jcmdãµããŒããå®éšçã«è¿œå ããŸãããjcmdã¯èšºæã³ãã³ãã®ãªã¯ãšã¹ããéä¿¡ããããã«äœ¿çšããããããã®ãªã¯ãšã¹ã㯠Java Flight Recordingsã®å¶åŸ¡ããã©ãã«ã·ã¥ãŒãã£ã³ã°ãã¢ããªã±ãŒã·ã§ã³ã®èšºæã«åœ¹ç«ã¡ãŸããjcmdã詊ãã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãã«ãåŒæ°ã«--enable-monitoring=jcmdã远å ããŠãã ããã詳现ã¯ããã¥ã¡ã³ããåç
§ããŠãã ããã
Java Diagnostic Command (jcmd) with Native Image
https://www.graalvm.org/jdk24/reference-manual/native-image/debugging-and-diagnostics/jcmd/
ãã®æ©èœã«å¯ŸããRed Hat瀟ã®è²¢ç®ã«æè¬ããããŸãã
Usability ð©âð»
- ã·ãªã¢ã©ã€ãº JSONã¡ã¿ããŒã¿ãã
customTargetConstructorClassãã£ãŒã«ããåé€ããŸãããã·ãªã¢ã©ã€ãºã®ããã«åãç»é²ãããšãã«ããã¹ãŠã®å¯èœãªã³ã³ã¹ãã©ã¯ã¿ãããã©ã«ãã§ç»é²ãããããã«ãªããŸãããRuntimeSerialization.registerWithTargetConstructorClassã¯éæšå¥šã«ãªããŸããã - ã·ãªã¢ã©ã€ãºJSONå°éå¯èœæ§ã¡ã¿ããŒã¿ã¯ã
serializableãã©ã°ã䜿ã£ãŠãªãã¬ã¯ã·ã§ã³ã¡ã¿ããŒã¿ã«å«ããããšãã§ããããã«ãªããŸããã
éåžžã®serialized.Typeã®å Žåããã®ãããªãšã³ããªã¯æ¬¡ã®ããã«ãªããŸãã
{
"reflection": [
{
"type": "serialized.Type",
"serializable": true
}
]
}
ãããã·ã¯ã©ã¹ã®å Žå
{
"reflection": [
{
"type": {
"proxy": ["FullyQualifiedInterface1", "...", "FullyQualifiedInterfaceN"],
"serializable": true
}
}
]
}
Miscellaneous
Native Imageã¯ãAArch64äžã§armv8.1-aãããã©ã«ãã§ã¿ãŒã²ãããšããããã«ãªããŸãããåãCPUæ©èœãæã€ãã·ã³å
ã§æé«ã®äºææ§ãå®çŸããã«ã¯-march=compatibilityããæé«ã®ããã©ãŒãã³ã¹ãå®çŸããã«ã¯-march=nativeã䜿çšããŠãã ããã
Javaã¢ãžã¥ãŒã«ã·ã¹ãã ããŒã¹ã®ãµãŒãã¹ããŒãã®ãµããŒãã远å ããŸãããäŸãã°ã
module Foo {
provides MyService with org.example.MyServiceImpl;
}
ãmodule-info.javaã§æå®ã§ããããã«ãªããŸããã
Community and Ecosystem
InfoQã®Java 2024 Trends Reportã«ãããšãGraalVMãç¹ã«Native Imageã¯çŸåšãearly majorityã«ãã£ãŠäœ¿çšãããŠãããã¯ãããžãŒãšèããããŠããŸãã
InfoQ Java Trends Report – December 2024
https://www.infoq.com/articles/java-trends-report-2024/
ç§ãã¡ã®ããŒã ãšã³ãã¥ããã£ã«ããNative Imageã®å®å®åãé«éåãæ¬çªç°å¢ã§äœ¿çšã§ããããã«ããããã®ç¶ç¶çãªäœæ¥ãè©äŸ¡ãããŠããããšãå¬ããæããŸããNative Imageã«å ããŠãGraalPyãšGraalWasmãInnovatorsã§åãäžããããŠããããšãåã°ããããšã§ãïŒð
GitHubã§ãã¹ããããŠãããããžã§ã¯ãã®ã¡ã³ããã«ãšã£ãŠçŽ æŽããããã¥ãŒã¹ã§ããsetup-javaã䜿çšããŠGraalVMãç°¡åã«äœ¿çšã§ããããã«ãªããŸããïŒð
actions / setup-java
https://github.com/actions/setup-java/releases/tag/v4.4.0
GitHubã®è©±é¡ãåºãã€ãã§ã«ãGitHubã®Linux ARM64ãã¹ãã©ã³ããŒã䜿çšããŠGraalVMã§ãã«ãã§ããããã«ãªããŸããããŸããsetup-graalvmã§ããã§ã«ãµããŒãã远å ããŠããŸãããŸãã¯ã詊ããã
setup-graalvm
https://github.com/graalvm/setup-graalvm
GraalVM Advisory Boardã«Sandra AhlgrimmãšMicrosoftãè¿ããããšãã§ããããããæããŸãã
GraalVM Project Advisory Board
https://www.graalvm.org/community/advisory-board/
Sandra Ahlgrimm
https://bsky.app/profile/sandraahlgrimm.bsky.social
Micronaut 4.7ã§ã¯ãLangChain4jã®å®éšçãµããŒããšGraalPyãšã®çµ±åã远å ããããŸãããããã«ãããMicronautã¢ããªã±ãŒã·ã§ã³ã§ç°¡åã«JavaããPythonã³ãŒããåŒã³åºããããã«ãªããŸããã
Micronaut Framework 4.7.0 Released!
https://micronaut.io/2024/11/14/micronaut-framework-4-7-0-released/
AWS CRT (Common Runtime) package for Javaã«ãNative Imageã®ãµããŒãã远å ãããŸããã
AWS CRT Client for Java adds GraalVM Native Image support
https://aws.amazon.com/jp/blogs/developer/aws-crt-client-for-java-adds-graalvm-native-image-support/
GraalVM Native Imageã䜿çšããã³ãŒã«ãã¹ã¿ãŒãã®ãªã¯ãšã¹ãåŠçæéã¯ããªã¯ãšã¹ãã®90%ã§4åã®1ã«ççž®ãããŸããããŠã©ãŒã ã¹ã¿ãŒãã®ãªã¯ãšã¹ãã§ã¯ãGraalVM ãã€ãã£ãã€ã¡ãŒãžã䜿çšããããšã§ãåŠçæéã18ïœ25%ççž®ãããŸããã

Spring Boot 3.4ã§ã¯ã--enable-sbom=sbomã§ãã€ãã£ãã€ã¡ãŒãžããã«ãããéã«SBOMãèªåæ€åºãããããã«ãªããŸããã
Quarkusã§ã¯ãAIã¢ãã«ãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ãšççµåãªããã¡ã§ãããšãã§ããããã«ããModel Context Protocolã®ãµããŒããå°å ¥ãããGraalVM Native Imageãšã®é£æºãè¯å¥œã§ãã詳现ã¯ãã¡ããã芧ãã ããã
Introducing Model Context Protocol servers project
https://quarkus.io/blog/introducing-mcp-servers/
Conclusion
ãã®å ŽãåããŠããã®ãªãªãŒã¹ã«è²¢ç®ããŠãã ãã£ãçŽ æŽãããã³ã³ããªãã¥ãŒã¿ãŒãã³ãã¥ããã£ã®çããŸã«æè¬ããããŸãã
ãã®ãªãªãŒã¹ã«å¯Ÿãããã£ãŒãããã¯ããä»åŸã®ãªãªãŒã¹ã§å®è£ ããŠã»ããæ©èœã«é¢ãããæèŠãããã°ãSlackãGitHubããŸãã¯BlueSkyã§å ±æããŠãã ããã
Slack invitation
https://www.graalvm.org/slack-invitation
GitHub Issues
https://github.com/oracle/graal
BlueSky
https://bsky.app/profile/graalvm.org
ãããæ°ããGraalVMã詊ããŠã¿ãŠãã ãã ð