graalvm native-image jfr 试用

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 有相关监控方面的支持,毕竟优化以及异常排错在日常开发
中还是很重要的

参考资料

https://www.graalvm.org/latest/reference-manual/native-image/guides/build-and-run-native-executable-with-jfr/

posted on   荣锋亮  阅读(72)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-06-24 delta lake minio+dremio 集成试用
2021-06-24 dremio 多集群共享zk 配置
2020-06-24 几个不错的geodns server
2020-06-24 spring boot rest api 最好添加servlet.context-path
2018-06-24 nsq 安装试用

导航

< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5
点击右上角即可分享
微信分享提示