Spring 启动时长优化是否有必要

查看 215|回复 15
作者:linyimin520812   
最近在 reddit 上推广自己的关于 Spring 启动优化小项目,之前也在 v 站推广过:
  • 分享一种 Spring 应用启动过程采样的方法
  • Spring 启动分析优化——自荐个项目

    评论区有个评论者 ta 的意见是没有意义,理由如下:




    一开始看到这个评论还挺难过的,毕竟辛苦做的东西,被别人说的一文不值。后面去了解了一下这个开发者说的 GraalVM ,发现确实很强大,编译出的 native 启动速度确实非常的快。
    所以我也开始认真的思考这个项目是否真的有意义,这个项目的背景是公司为了降低线上故障时回滚止血时间,要求应用启动时长必须要小于指定的时间,结合一些可以显著提高 Java 启动速度方法无观测不优化的观点实现的,最大的一个优化应用是:将启动时间由原来的将近 6 分钟优化至 3 分钟。
    如果没有公司的强推,那还有没有必要这样做 spring 应用启动的优化,就像评论说的直接使用 GraalVM 。个人觉得还是有必要的:
  • 目前公司的应用不是基于 GraalVM 的,如果要享受 GraalVM 带来的启动极速,还是需要进行大量的应用改造
  • GraalVM 对反射、动态代理有很多的限制,升级应用很容易踩坑,还需要大量的回归测试
  • 日常的项目启动慢本身其实不在 spring 本身,而是项目中依赖的各种中间件的初始化、富客户端的初始化等导致的,升级完 GraalVM 后这些耗时应该还是存在的

    以上就是我能想到的观点,感觉这个评论者是 GraalVM 的忠实粉丝,而且认为这是在发布垃圾消息,所以选择在 v 站想和大家再讨论一下,spring 启动时长的优化是否有必要

    graalvm, spring, 启动, 评论者

  • aper   
    生产环境有谁真正大规模用上了 GraalVM 嘛?
    jorneyr   
    将启动时间由原来的将近 6 分钟优化至 3 分钟。
    jamel   
    说没有必要的 都是伸手躺平党,当你真正的面世一款不需要改任何东西,只需引入一个依赖,不会带来任何副作用的时候,那帮叼毛恨不得立马上生产。
    只有生产可控了,那些声音才会消息。
    现在 GraalVM 已经在快速发展了,spring native 也实现基本可用了,还是算比较成熟了。
    这些技术出现了很多年了,还有什么 loom 类的。
    linyimin520812
    OP
      
    @aper 不知道国外用的多不多,感觉周围人都是线下体验一下,但线下体验感觉 GraalVM 确实很厉害
    lifespy   
    个人觉得,项目还是有意义的,没有任何一件事能得到所有人的赞同与认可
    cbdyzj   
    启动 3 分钟还是太慢了吧,感觉不太合理
    miaotaizi   
    大项目, 不得滚动发布吗? 那启动时间不就没啥影响了吗?
    小项目, 慢点就慢点吧.
    不知我这么理解是否有误
    kaedeair   
    使用蓝绿发布或者灰度发布不能解决线上问题么
    yazinnnn   
    spring 就算做了再逆天的优化也没法和 graal 的 aot 比啊..........
    quarkus 即使使用了一堆插件, aot 启动时间也基本不超过 50 毫秒, 比 spring 的 jit 应用启动快太多了
    ```
    2023-08-16 09:32:00,080 INFO [io.quarkus] (main) vrp-client 1.0.0 native (powered by Quarkus 3.2.2.Final) started in 0.018s.
    ```
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部