V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ayanokouji
V2EX  ›  程序员

GraalVM for JDK 21 发布了

  •  
  •   Ayanokouji · 2023-09-20 08:50:00 +08:00 · 4050 次点击
    这是一个创建于 411 天前的主题,其中的信息可能已经有所发展或是发生改变。
    31 条回复    2024-03-26 08:46:01 +08:00
    dbit
        1
    dbit  
       2023-09-20 08:56:24 +08:00 via Android
    👍👍昨天白天看了好几次都没发版
    OysterQAQ
        2
    OysterQAQ  
       2023-09-20 08:56:58 +08:00
    希望 java 越来越好🥳
    wangxiaodong
        3
    wangxiaodong  
       2023-09-20 09:05:46 +08:00
    这玩意儿,大项目又一时不敢改,小项目又不咋关心性能,有点鸡肋,还是 jpackage 直接打包成 exe 务实一些。
    ffLoveJava
        4
    ffLoveJava  
       2023-09-20 09:07:29 +08:00
    国内有啥公司或者项目用 graal 吗 三四年之前刚出的时候就很多 但一直没见到落地的实践啊
    Ayanokouji
        5
    Ayanokouji  
    OP
       2023-09-20 09:08:53 +08:00
    @wangxiaodong 小项目不在意性能,但在意启动时间,而且应用场景主要还是云原生吧。
    pengtdyd
        6
    pengtdyd  
       2023-09-20 09:13:06 +08:00
    貌似现在微服务化、容器化之后对于 JVM 的性能不怎么关注了。。。。
    kuituosi
        7
    kuituosi  
       2023-09-20 09:16:18 +08:00   ❤️ 1
    @ffLoveJava 阿里云上大量 java 中间件都是用的 graal ,性能和启动速度提升很大。比如 mq ,polardb parser 等,发现 java 大厂都是优化狂魔。java 的野心很大,在霸占了业务开发之后下一个抢占的目标是 golang 的云原生,只是这个动作有点慢
    kuituosi
        8
    kuituosi  
       2023-09-20 09:16:58 +08:00
    @wangxiaodong 这个跟 jpackage 还不太一样,这个是 native 了
    kuituosi
        9
    kuituosi  
       2023-09-20 09:17:49 +08:00
    @pengtdyd 大厂在乎啊,能省下好多机器而且能刷 kpi
    wangxiaodong
        10
    wangxiaodong  
       2023-09-20 09:32:17 +08:00   ❤️ 1
    @Ayanokouji 我 graalvm 和 jpackage 都玩过,还是觉得大部分项目,jpackage 足矣(不用额外安装 jvm/鼠标一键使用),graalvm 的部分库编译时屡屡不过,云原生的红利其实是给云平台的,跟最终用户关系不大。
    jptx
        11
    jptx  
       2023-09-20 09:33:47 +08:00
    native-image 对我们还是有用的,我们的很多内部维护工具、运维工具之类的,都编译成了 native 可执行文件,主打一个随用随丢,快速启动。而且语言是 Java ,所以大家直接上手,不需要再学 Go 之类的其他语言
    leisifung
        12
    leisifung  
       2023-09-20 09:33:49 +08:00
    @dbit 我们是东 8 区时间。我们是 19 号,美国可能是 18 号的。
    xingjue
        13
    xingjue  
       2023-09-20 09:35:37 +08:00
    @kuituosi 做云原生还是不适合 生态决定的
    jptx
        14
    jptx  
       2023-09-20 09:36:21 +08:00
    昨天夜里 YouTube 上可热闹了,半夜 12 点多看到 Java 在直播,GraalVM 也在直播,Spring 官方也在发视频,全在讲 Java 21
    cubecube
        15
    cubecube  
       2023-09-20 09:37:06 +08:00
    @wangxiaodong 可以不编译 native ,当普通的 jdk 用,他的 jit 也有一定的优势
    cubecube
        16
    cubecube  
       2023-09-20 09:39:17 +08:00
    @kuituosi 我没发现到处在用的例子呢,ali 有自己的 jdk ,因为之前 graalvm-ee 需要授权费,感觉大厂引入没那么快。
    wangxiaodong
        17
    wangxiaodong  
       2023-09-20 09:43:33 +08:00
    @cubecube
    @kuituosi
    相比 graalvm ,我更看好 wasm 在云原生的前途; JDK21 的改变里,除了虚拟线程,我更喜欢"JEP 430 字符串模板(预览)":

    String name = "Joan";
    String info = STR."My name is \{name}";
    dreamlike
        18
    dreamlike  
       2023-09-20 11:08:56 +08:00 via Android
    这个版本 native image 支持新 ffi api 虽然只有 downcall 但也不错了,gu 支持被移除改为在构建工具脚本里面声明对应组件,简直是重大利好
    新的 o3 优化等级从 spring petcline 测试来看和 graalvm ce jit 模式不相上下,还不错
    https://medium.com/graalvm/graalvm-for-jdk-21-is-here-ee01177dd12d
    QWE321ASD
        19
    QWE321ASD  
       2023-09-20 11:15:03 +08:00
    native 要是能方便的解决反射问题就好了,之前做的 Java 客户端程序,使用 native 打包后内存占用降低了一个数量级,太强大了.
    Bazingal
        20
    Bazingal  
       2023-09-20 11:34:41 +08:00
    @wangxiaodong 这个字符串模板语法太奇葩了
    zzzkkk
        21
    zzzkkk  
       2023-09-20 11:44:29 +08:00 via Android
    @QWE321ASD
    用的什么客户端库 swt swing 还是其他?
    kid1412621
        22
    kid1412621  
       2023-09-20 11:49:35 +08:00
    @wangxiaodong #17 那个转义符看着好难受
    XIVN1987
        23
    XIVN1987  
       2023-09-20 11:59:44 +08:00
    @wangxiaodong

    为什么要用 STR. 这么长的字符??直接像 Python 那样用单个字符会有什么问题?
    Leviathann
        24
    Leviathann  
       2023-09-20 12:07:12 +08:00
    @XIVN1987 STR. 模板处理器,是可以自定义的,比如 SQL. , JSON.

    Scala 就是这么玩的
    TWorldIsNButThis
        25
    TWorldIsNButThis  
       2023-09-20 12:12:56 +08:00 via iPhone
    @Leviathann 还有 js 的 tagged templates
    wangxiaodong
        26
    wangxiaodong  
       2023-09-20 13:46:27 +08:00
    @XIVN1987 越短,冲突的情况就大,比如类名重复,误写,还会加大编译器的语法分析,长点的话,就比较保守安全。


    @kid1412621 我觉得 java 能走出第一步就很欣慰了,用着舒服不舒服慢慢进化。
    QWE321ASD
        27
    QWE321ASD  
       2023-09-20 13:53:06 +08:00
    @zzzkkk 用的是 awt 和 fx17 以及一些 fx 的 ui 库
    XIVN1987
        28
    XIVN1987  
       2023-09-20 14:15:12 +08:00
    @Leviathann

    高级,,那 STR. 可不可以自定义 S. 实现??
    kid1412621
        29
    kid1412621  
       2023-09-20 16:01:32 +08:00
    @wangxiaodong #26 同意 但是 API 都定义好了 以后要改只有再起一套
    zhouquanbest
        30
    zhouquanbest  
       2023-09-20 17:09:02 +08:00
    Android 刚用到 Java11
    还得是 Kotlin
    lvjing2
        31
    lvjing2  
       223 天前 via Android
    关注启动速度和内存占用的可以了解下蚂蚁集团开源的 koupleless.io 啊,可以让存量应用 10 倍提升的框架
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   980 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.