GraalVM Native Image - Faster, Smarter, Leaner

Поделиться
HTML-код
  • Опубликовано: 10 янв 2025

Комментарии • 25

  • @tominix5555
    @tominix5555 Год назад +4

    Props to the presenter, that was a great talk

  • @YDwelve
    @YDwelve Год назад +8

    Holy shit, as straight to the point as it gets. I guess there is no way around it. At some point you have to get into compiler programming to get better at programming.

  • @sachinsonar9910
    @sachinsonar9910 4 месяца назад

    This is going to be a game changer !

  • @rkalla
    @rkalla Год назад +2

    12:05 that performance differential is unreal...

  • @hariseldon02
    @hariseldon02 Год назад +2

    Thanks for being transparent about the throughput. So the main benefits are image size, startup time, memory and CPU footprint. These are all not important to us as we don't deploy to the cloud. The CPU is bored anyway and memory is cheap.
    Still, fascinating stuff.

    • @florianenner7435
      @florianenner7435 Год назад +5

      The faster startup time of native images is also very noticeable for CLI apps, Desktop GUIs, and applications running on small targets like a Raspberry PI. I don't work with web services at all, but I still use native images whenever possible.

    • @ellandill
      @ellandill Год назад +3

      it matters a lot for lambda or cloudrun, even for kubernetes no need to pay for extra memory

    • @johnboy14
      @johnboy14 3 месяца назад

      This definitely makes a difference in serverless environments because I remember writing code to preemptively hit AWS lambda functions to keep them hot because it took 5 seconds to boot some of them. Outside of smaller binaries and faster startup times, I don't think I'd go out of my way to use this for long running Java apps.

  • @AbstractSuperclass
    @AbstractSuperclass Год назад

    Great talk Shaun! :)

  • @rkalla
    @rkalla Год назад +5

    Awesome talk - wasn't aware what nativeimage was doing when building those executables OR the benefit of building the native package. Awesome benefits. Does it impact instrumentation though since JFR and other VM capabilities aren't there?

    • @rkalla
      @rkalla Год назад

      @@Mig440 You rock, appreciate the link!

    • @shaunmsmith
      @shaunmsmith Год назад +2

      You can add JFR instrumentation to the generated executable for runtime monitoring of your app. This isn't the same as the performance guided optimization instrumentation I had done and is independent. Once I had the PGO data from the instrumented version, I recompiled to get a more optimized version. I could have enabled JFR in the final version that I would deploy. FYI, as I think I mentioned in the session, not all JFR events are supported yet but coverage is expanding release-to-release.

    • @peoplethesedaysberetarded
      @peoplethesedaysberetarded 10 месяцев назад

      @@rkallalink’s gone now. 😢

  • @trozzonick77
    @trozzonick77 Год назад

    Very informative. Thanks a lot!

  • @ddevienne
    @ddevienne 5 месяцев назад

    Where's the WASM target?

  • @morkhoudia9
    @morkhoudia9 Год назад

    Great présentation. Is it available at a repository...

  • @elias_toivanen
    @elias_toivanen 10 месяцев назад

    Good stuff!

  • @robotduck77
    @robotduck77 Год назад +3

    Tried to AOT compiled one of our swing app with GraalVM, it threw bunch of errors. It's not as seamless and easy as the discontinued Excelsior JET

    • @florianenner7435
      @florianenner7435 Год назад

      Gluon did some nice work to support JavaFX with native image. They even managed to use it to deploy to iOS and Android. Migrating complex apps is still a bit of a pain, but it's doable.

    • @henson2k
      @henson2k Год назад

      same experience

    • @tobyzieglerrr
      @tobyzieglerrr Год назад

      Same here - imho not production ready, and often not needed anyway. There is a narrow area of application anyway: serverless, microservices. CI/CD and deployment setup is a pain still. But this like CRaC is very interesting stuff and _can_ be very usable in the future.

  • @程序员玉米
    @程序员玉米 Год назад

    The "Game of Life" test on my mac is completely opposite !!!

  • @ndrvsk
    @ndrvsk Год назад +5

    That's too sad that PGO (Profile-Guided Optimizations) IS NOT part of Community Edition.
    Considering, that GraalVM is slightly worse than Standard Java app with JIT (around 12%).
    It seams to me that GraalVM won't be used for Non-lambda Apps, since for most of the cases when CI/CD is used - startup time is not that important than final perfomance.
    So I guess, almost nobody will start using GraalVm for production, since It requires lots of changes for existing infrustructure, unless It will be obvious that it is "WIN-WIN" situation,
    but, unfortunately, that can be achived only with PGO

    • @maorhamami8106
      @maorhamami8106 Год назад

      as u said, lambda with graalvm is a major boost. in addition when you have an "on-prem" solution with limited cpu/ram graal also is a major boost. for generic "cloud" applications using k8 its probably less a "win" as the compile time and all of the configurations and back and forth getting things to work not worth it