In general, the performance decreases. I have reported the performance decrease of native images some time ago to the GraalVM team. The severity of performance decrease may vary on the use case(s). On the benchmarks I have written and used for my analysis (an updated version of the code can be found here), the overhead ranged from "barely noticeable" to "up to 5x slower". I also mentioned this shortly in my talk at JCON 2019 (#shamelessSelfPromotion).
There is a nice slide from the GraalVM team, illustrating what technology to use for which use case:
(The image was taken from a tweet by Thomas Würthinger)
For the interested reader: As Andrew mentioned on github, a major factor of the bad performance is the non-existence of JIT-compilation: the JIT-compiler can, among other things, eliminate seldom-used branches and thus significantly speed up performance. This is obviously not possible with natively compiled code.
Side note: While we are on the topic of performance, you can execute bitcode emitted by clang (i.e. execute C
/C++
programs on GraalVM), but don't expect "good" performance at all...