graalvm 最近license 许可模型的修改,对于我们使用graalvm 增加了不少信心,尤其是以前需要企业订阅的一些特性
以下是一个简单的jfr 试用
代码&构建
代码来自官方文档,主要是试用下,对于graalvm直接可以免费下载企业版了, 同时需要安装visualvm
- 代码
JFRDemo.java
import jdk.jfr.Event;
import jdk.jfr.Description;
import jdk.jfr.Label;
public class JFRDemo {
@Label("Hello World")
@Description("Build and run a native executable with JFR.")
static class HelloWorldEvent extends Event {
@Label("Message")
String message;
}
public static void main(String... args) {
HelloWorldEvent event = new HelloWorldEvent();
event.message = "Hello, World!";
event.commit();
}
}
- 构建
javac JFRDemo.java
native-image --enable-monitoring=jfr,jmxserver,jvmstat JFRDemo
运行&查看效果
- 运行
运行的时候添加jfr配置运行构建的二进制应用就可以了,应用启动之后就会退出
./jfrdemo -XX:StartFlightRecording="filename=recording.jfr"
- 查看
说明
graalvm 的native-image 是一个很不错的java 应用运行模式,但是对于性能调优还是比较重要的,jfr 是一个特别好的选择,而且对于系统资源占用比较底
传统java 应用,我比较喜欢使用jprofiler,也比较期待jprofiler后续对于graalvm 的native-image 有相关监控方面的支持,毕竟优化以及异常排错在日常开发
中还是很重要的