
Instant Netty Startup using GraalVM Native Image Generation - grashalm01
https://medium.com/graalvm/instant-netty-startup-using-graalvm-native-image-generation-ed6f14ff7692
======
repolfx
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
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
Wondering, what is the price of using GraalVM Enterprise Edition?

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

------
openasocket
(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?

~~~
shelajev
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](https://twitter.com/lukasz_bialy/status/989091065033625606)

~~~
kjeetgill
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
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.

