What’s the story of PGO for Clojure programs? I could use native-image to shave away the start time of JVM and Clojure for the Languages project. For the billion loops benchmark it creates a binary that starts in 4ms and crunches at near C speed. https://github.com/bddicken/languages/pull/255 Then I wanted to see if I could use PGO to get more optimized compilation, but in my first and only try, using https://www.graalvm.org/latest/reference-manual/native-image/guides/optimize-native-executable-with-pgo/ straight of the shelf, performance dropped by almost 100%. I let the profiler run for some 3 minutes, so maybe that was too little, but mostly I think I am holding things wrong.
Using Java 23, if that matters. The benchmark is running all languages at the same time and because reasons it is too involved to use different versions of Java between the JVM and GraalVM.
yeah PGO should work that way but if it doesn't... don't know
Is there some tool I can load the profiling dump in to maybe get an idea of what’s going on?
no idea other than the docs... probably the GraalVM community slack is the best place to ask (native-image channel)