-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[GR-38835] native-image performance regression when using debug-info generation #4595
Comments
@olpaw Hi Paul. Can you just clarify a few things here.
I ask because I think it is a very important goal to have full debuginfo, based on full infopoints, as the default when generating an image for deployment. Given that this change disables full infopoints for optimization levels O1 and O2 (O2 being the default) it prejudices that goal. The reason for pursuing that goal is that it makes it a lot easier to deal with the, hopefully very rare circumstance that an issue in the GraalVM Native chain manifests in a deployed app. It avoids the need to rebuild the app with full infopoint generation enforced in order to best be able to debug it; and it bypasses the possibility that the problem fails to manifest in the rebuilt version. I'd really like to recommend Mandrel users to configure final builds of images for deployment so that they enforce full infopoint generation. Obviously, it is important to know what the other side of the equation is here: i.e. what it might cost in deployment time performance if we were to recommend to a user to force full infopoints. So, any info you have on that cost would be helpful to know. |
@adinn enabling full infopoints cause performance regressions in the runtime of images. (Of course debug info generation time also increased due to debug location info generation but this is not the concern here.) @farquet provided me with the numbers: Full infopoints keep locals alive beyond the point they would otherwise be the end of their live-range. This has a negative impact on optimizations. |
@olpaw Thanks for providing those figures. That's definitely a significant regression :-( |
Benchmark numbers are public: https://graal.d3s.mff.cuni.cz/see/overview You can browse individual performance regressions/speedups and it will tell you more about the JVM configuration, the absolute scores, candidate culprit commits, hardware info, etc |
Merging of #4505 introduced a native-image performance regression when images are built with debug-info. Using
-g
should not have an affect on the performance of the image that gets built.The text was updated successfully, but these errors were encountered: