Settings

Theme

Instant Netty Startup using GraalVM Native Image Generation

medium.com

61 points by grashalm01 8 years ago · 11 comments

Reader

repolfx 8 years ago

Maybe it's easier to just disable unsafe usage in netty. It can run without it. All the magic hoops you have to jump through to 'unlock' Unsafe are silly - libraries just do the incantations and the JVM developers still end up with loads of libraries using internal APIs.

They should have just standardised raw pointers in the Java language and libraries. Then Netty and SubstrateVM wouldn't require these hacks. Of course it's typical for all modern languages, Java is hardly alone in struggling to integrate well with C in high performance ways.

vbezhenar 8 years ago

That's a good read for library developers. Ideally libraries should be a little bit adapted for Graal. I think it's an important project and compatibility is good, most developers won't be able to overcome those problems and just won't use Graal at all if popular libraries are incompatible out of the box.

viach 8 years ago

Wondering, what is the price of using GraalVM Enterprise Edition?

  • darksaints 8 years ago

    It's oracle, so that depends: how much money do you have?

  • pjmlp 8 years ago

    Cheaper than the other commercial AOT compilers that exist since the early days of Java.

openasocket 8 years ago

(Slightly off-topic) My understanding was that HotSpot and other JITs are able to to profile-guided optimizations and the like (such as a polymorphic inline cache) to produce the best possible assembly. How does the assembly produced by these AOT compilers compare? Fast startup time and reduced memory footprint is great, but how will performance compare on compute-intensive workloads?

  • darksaints 8 years ago

    You can use Graal for both JIT and AOT workloads. The JIT version works just like hotspot, but it's better with memory allocation and collection due to better optimizations. I have yet to see an application where it has performed worse than hotspot, although they may exist.

    Ive read that the EE version can do PGO (you profile the app in a profiling mode, outputting a profile file which is used in a subsequent AOT compile), but I personally have no desire to talk to an oracle salesman ever again, so I'll just stick to JIT.

  • shelajev 8 years ago

    you can use profile guided optimisations when building a native image with GraalVM. You'll need to run your code in a special way under the desired load to gather the profile information, then it can be used when building the native image. YMMV, but the results can be quite interesting, here for example someone compiled http4s: https://twitter.com/lukasz_bialy/status/989091065033625606

    • kjeetgill 8 years ago

      Interesting. It seems it's a feature unique to the the GraalVM Enterprise Edition. Is there any official policy or statement on what makes it into CE vs EE? I think a there are a lot of questions around that that always crop up. PGO being unique to EE would feel more reasonable than say partial escape analysis. (Though I fully acknowledge Oracle's right to do so with work they fund.)

      If the open source project (CE) is under GPL, doesn't that restrict contributions from making it upstream to EE?

      • jillesvangurp 8 years ago

        Companies like oracle typically require copyright transfer for contributions. This allows them to use differently for their enterprise version since they are the only copyright holder.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection