Skip to content
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

Gather build-time data in JVM-mode like we do in native-mode #40901

Open
zakkak opened this issue May 30, 2024 · 2 comments
Open

Gather build-time data in JVM-mode like we do in native-mode #40901

zakkak opened this issue May 30, 2024 · 2 comments

Comments

@zakkak
Copy link
Contributor

zakkak commented May 30, 2024

Description

As discussed with @cescoffier, we believe it would make sense to start gathering build-time data (e.g. number of packages/classes ending up on the classpath after the deployment phase) in a similar manner we do for native-mode (see #40076).

Implementation ideas

We can probably use Jandex index to get the number of packages/classes on the runtime classpath. Doing that for every Integration Test and pushing the results in a database will allow us to detect changes over time and act accordingly.

@dmlloyd
Copy link
Member

dmlloyd commented May 30, 2024

Are the native mode numbers based on the final class list after dead code elimination? In JVM mode we don't currently do any DCE (though I have some ideas about this), so I don't know that this will tell us a whole lot about image size.

@zakkak
Copy link
Contributor Author

zakkak commented May 30, 2024

Are the native mode numbers based on the final class list after dead code elimination?

Yes the numbers we collect from native builds are what ends up being included in the native executable.

In JVM mode we don't currently do any DCE (though I have some ideas about this)

Certainly there is no DCE, but you still have some dependencies that are only on the build classpath.

so I don't know that this will tell us a whole lot about image size.

Correct, this is not meant to be used for getting any insight about the image size. The motivation was to be used for keeping an eye on how many classes/packages we add on the runtime classpath and how much this is changing over time (e.g. because of library updates). This could be an indication of how bigger or smaller containerized quarkus applications become over time.

Such metrics are not necessarily tied to performance, but we have noticed that the native executable for a simple hello world has been gradually increasing over the years. I wonder if this is the case for jvm-mode containerized applications.

@cescoffier cescoffier removed the f2f label Jul 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants