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

SpringBoot2.4.0 已经支持 GraalVM 了

  •  
  •   monkeyWie ·
    monkeyWie · 2020-12-23 10:35:51 +08:00 · 4440 次点击
    这是一个创建于 1212 天前的主题,其中的信息可能已经有所发展或是发生改变。

    可以支持 AOT,启动速度和内存占用情况都有大幅度的提升,但是缺点是因为要做 AOT,所有的反射和动态代理都需要特殊处理,通过配置文件来声明。

    官方文档
    GitHub

    8 条回复    2021-01-02 20:10:51 +08:00
    Oktfolio
        1
    Oktfolio  
       2020-12-23 10:45:04 +08:00
    不还是 experimental 吗?很久之前就玩过了。
    kingfalse
        2
    kingfalse  
       2020-12-23 11:18:41 +08:00 via Android
    一直在开发,还没 ga,
    lancelock
        3
    lancelock  
       2020-12-23 11:52:03 +08:00 via iPhone
    我试过怎么感觉内存占用高了很多,不过 native 过后表现确实挺好的。

    但是 native 我只能在自己本机上打包,在云上用 docker 容器编译就爆内存了好像,部署不了 ci/cd
    monkeyWie
        4
    monkeyWie  
    OP
       2020-12-23 12:50:58 +08:00
    @lancelock #3 编译现在确实是个大问题,又慢又吃配置,不过还好开发的时候不用 AOT
    mamahaha
        5
    mamahaha  
       2020-12-23 12:55:31 +08:00 via Android
    graalvm 是啥?
    hantsy
        6
    hantsy  
       2020-12-23 18:23:14 +08:00   ❤️ 2
    experimental 下的那个项目,已经快两年了。Spring Boot 现在使用太麻烦,限制太多,离生产环境使用差太远了。

    如果不改变 Spring IOC 本身,类反射和动态代替是最基本的障碍,而这些是 Spring IOC 的基础。目前 Spring 太难了,想作到与 Quarkus 一样几乎不可能。

    目前只有 Quarkus 从一开始就是支持 GraalVM 的,Quarkus 是完全抛弃现有的 Weld,重新写一个 Arc 容器(支持 CDI 子集),以适应 [ [ [编译时处理] ] ] 代替之前的 Runtime Proxy 。
    Micronaount 在 2.0 以后也添加了支持。
    Helidon 2.0 中 SE 版本已经支持(刚刚发布的 Helidon 2.2 还支持了 Java 16 中的 Virtual Threads )。

    但是 Native 编译是费力的事,去前写的 Quarkus 的测试:

    https://github.com/hantsy/quarkus-sample/blob/master/docs/01-start.md

    内码启动时间(看程序大小,大约快是 10 到 100 倍,这个最明显的),至少提高一个数量级以上,一般请求性能也有一定优化,内存消耗整体降低了不少。
    abcbuzhiming
        7
    abcbuzhiming  
       2020-12-29 23:29:02 +08:00
    这东西最吸引我的就是编译成 native 后启动速度大增,内存占用降了 10 倍不止
    hantsy
        8
    hantsy  
       2021-01-02 20:10:51 +08:00
    @abcbuzhiming 启动速度是快了 10 倍以上。但运行时,随着项目的体积增大,只是有少量提升(内存和响应速度)。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2539 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:05 · PVG 00:05 · LAX 09:05 · JFK 12:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.