-
Notifications
You must be signed in to change notification settings - Fork 2.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
dev mode Startup time regression between 2.2.3.Final and 2.5.0.CR1 #21552
Comments
Can you check again with PS: Although I have to say this might not even be casued by increased build step runtimes, but we'll see. |
Output of |
I created some jfr recordings, and converted them to flamegraphs for easier viewing. |
Can you perhaps try Furthermore, is this regression only limited to dev-mode? |
There is no difference between The regression therefore only affects dev mode. |
There is a nice documentation about how to profile dev mode here:
https://github.com/quarkusio/quarkus/blob/main/TROUBLESHOOTING.md#profiling-application-dev-mode-with-async-profiler
If you're interested in digging a bit more by yourself, that would be a
good starting point.
…On Mon, Nov 22, 2021 at 10:11 PM Martin Panzer ***@***.***> wrote:
@geoand <https://github.com/geoand>
There is no difference between 2.5.0.Final (2.474s) and 2.5.0.CR1
(2.476s).
There is also no difference when running as fast jar between 2.5.0
(0.877s) and 1.13.1.Final (0.876s).
The regression therefore only affects dev mode.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#21552 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJYOBPJJ7C5LELCYW3UTBTUNKWW5ANCNFSM5IKWMYYA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Good to know, thanks |
I also had a look and I see a ~100ms regression, although it is really not clear what is causing it. What is also odd is that I see 2.5 producing a lot less bytecode in the final jar, even though the startup time is slower. |
I'm not sure we should close this one. For me, there's a good chance all the improvements @Postremus did are unrelated to the regression we encounter. |
Current measurements, as reported by the mvn clean compile quarkus:dev force restart (s) Difference between 2.2.3.Final and 2.5.1.Final: This shows that @gsmet is right. No buildstep or other deployment action is responsible for the regression. Still, the savings will translate to a faster hot deployment cycle, which is nice. :) |
@Postremus yeah I totally agree your work has been great. I just think maybe we could even further improve things by finding the source of the original regression. |
|
Yeah first thing would be to find the version(s) introducing the regression
and then git bisect.
…On Mon, Dec 6, 2021 at 6:18 PM Falko Modler ***@***.***> wrote:
finding the source of the original regression
git bisect might help. 🤔
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#21552 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJYOBPR34SIC2ZB227UBQTUPTV77ANCNFSM5IKWMYYA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
just a random test to make, run with "-Dquarkus.devservices.enabled=false" and/or "-Dquarkus.console.basic=true" and see if makes difference. There been some changes in these areas that I could suspect adding at least some unwarranted pauses. |
|
Makes no real difference on 2.5.1.Final. For a future bisect: |
Btw, I suggest to use PS: I'd also recommend to try |
Great numbers @Postremus, nice job! |
Wonderful! |
yes. At least about another 100ms. |
We could get more if we had better integration with ClassPathElement in the BuildSteps/BuildItems. I am touching that too in my branch. |
I did a few fresh measurements, since 2.7.0.CR1 is out. mvn clean compile quarkus:dev force restart (s) |
Thanks for all this work, Martin!
It's this sort of thing that makes Quarkus more pleasant when used daily.
…On Wed, Jan 19, 2022 at 6:58 PM Martin Panzer ***@***.***> wrote:
I did a few fresh measurements, since 2.7.0.CR1 is out.
Numbers are the average of 3 runs.
mvn clean compile quarkus:dev
2.5.2.Final: 2442ms
2.6.2.Final: 2212ms
2.7.0.CR1: 1970ms
force restart (s)
2.5.2.Final: 693ms
2.6.2.Final: 500ms
2.7.0.CR1: 247ms
—
Reply to this email directly, view it on GitHub
<#21552 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJYOBI42KL2CG3JPSVU22DUW33S7ANCNFSM5IKWMYYA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Awesome improvement! |
Excellent. I really felt this in my testing today of main branch. Thank you. |
@Postremus you should make Thanks, also to @aloubyansky! |
Perhaps we could also have a blog post documenting what happened and it was addressed? |
I think we can close this one now. Thanks for all your work on this @Postremus . |
Describe the bug
I just migrated from 2.2.3.Final to 2.4.2.Final.
Noticed that my project is starting a bit slower in dev mode.
I also cross checked against 1.13.1.Final, which was a bit faster still than 2.2.
For the reproducer project, I get following dev mode startup times on my machine:
2.5.0.CR1: 2.493s
2.2.3.Final: 2.273s
1.13.1.Final: 2.059s
Flamegraphs:
flamegraphs.zip
Output when running with
-Dquarkus.debug.print-startup-times=true
1.13.1.Final (Click to expand)
2.2.3.Final (Click to expand)
2.5.0.CR1(Click to expand)
Expected behavior
No response
Actual behavior
No response
How to Reproduce?
Download the reproducer:
profiling.zip
Output of
uname -a
orver
Microsoft Windows [Version 10.0.19043.1348]
Output of
java -version
openjdk 17 2021-09-14 OpenJDK Runtime Environment Temurin-17+35 (build 17+35) OpenJDK 64-Bit Server VM Temurin-17+35 (build 17+35, mixed mode, sharing)
GraalVM version (if different from Java)
No response
Quarkus version or git rev
No response
Build tool (ie. output of
mvnw --version
orgradlew --version
)Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: C:\Users\Martin.m2\wrapper\dists\apache-maven-3.6.3-bin\1iopthnavndlasol9gbrbg6bf2\apache-maven-3.6.3 Java version: 17, vendor: Eclipse Adoptium, runtime: C:\tools\java\17 Default locale: de_DE, platform encoding: Cp1252 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Additional information
No response
The text was updated successfully, but these errors were encountered: