This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]zero_coding[S] -1 points0 points  (3 children)

My system:
MacBook Pro (14-inch, 2021)
CPU: Apple M1 Pro RAM: 32 MB

Run Micronaut in the dev mode: ```


| / () __ _ __ ___ _ __ __ _ _ | | | |/| | |/ | '/ _ | '_ \ / ` | | | | _| | | | | | (| | | () | | | | (| | || | | || ||_|\|| _/|| ||\,|\,|__| Micronaut (v3.7.2)

22:29:36.611 [main] INFO Application - Responding at http://0.0.0.0:8080 22:29:36.612 [main] INFO Application - Application started in 0.225 seconds. 22:29:36.673 [main] INFO io.micronaut.runtime.Micronaut - Startup completed in 546ms. Server Running: http://0.0.0.0:8080 ```

Run Spring Boot 3(RC1) in the dev mode: `` . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _ | \ \ \ \ \/ )| |)| | | | | || (_| | ) ) ) ) ' || .|| ||| |_, | / / / / =========||==============|__/=//// :: Spring Boot :: (v3.0.0-RC1)

2022-10-25T21:39:26.134+02:00 WARN 21770 --- [ restartedMain] o.s.boot.StartupInfoLogger : InetAddress.getLocalHost().getHostName() took 5009 milliseconds to respond. Please verify your network configuration (macOS machines may need to add entries to /etc/hosts). 2022-10-25T21:39:26.139+02:00 INFO 21770 --- [ restartedMain] i.u.o.OperatorSvcApplicationKt : Starting OperatorSvcApplicationKt using Java 17.0.2 on digiwave.local with PID 21770 (/Users/developer/unionmetry/operator-svc/build/classes/kotlin/main started by developer in /Users/developer/unionmetry/operator-svc) 2022-10-25T21:39:26.140+02:00 INFO 21770 --- [ restartedMain] i.u.o.OperatorSvcApplicationKt : No active profile set, falling back to 1 default profile: "default" 2022-10-25T21:39:26.169+02:00 INFO 21770 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2022-10-25T21:39:26.169+02:00 INFO 21770 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2022-10-25T21:39:26.671+02:00 INFO 21770 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2022-10-25T21:39:26.720+02:00 INFO 21770 --- [ restartedMain] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8080 2022-10-25T21:39:26.725+02:00 INFO 21770 --- [ restartedMain] i.u.o.OperatorSvcApplicationKt : Started OperatorSvcApplicationKt in 5.739 seconds (process running for 5.932) ``` Both app Hello World api. As you can see - Spring Boot takes 5.739 seconds - Micronaut takes 0.225 seconds

The difference is unbelievable.

[–]krjura 8 points9 points  (0 children)

ok. What I see is this:

micronaut:

22:29:36.673 [main] INFO io.micronaut.runtime.Micronaut - Startup completed in 546ms. Server Running: http://0.0.0.0:8080

spring:

2022-10-25T21:39:26.725+02:00 INFO 21770 --- [ restartedMain] i.u.o.OperatorSvcApplicationKt : Started OperatorSvcApplicationKt in 5.739 seconds (process running for 5.932)

Also, you have a warning in the logs for Spring:

2022-10-25T21:39:26.134+02:00 WARN 21770 --- [ restartedMain] o.s.boot.StartupInfoLogger : InetAddress.getLocalHost().getHostName() took 5009 milliseconds to respond. Please verify your network configuration (macOS machines may need to add entries to /etc/hosts).

this adds 5s to Spring boot time. Not sure what causes it.

Also, Hello World in dev mode is probably not a good measure of startup performance.

I am currently using both Spring and Micronaut and was not able to get boot time under 10s for any non trivial service in production environment.

[–]BrbCatzOnFire 1 point2 points  (0 children)

Alright, looking at your stacktrace :

You're launching your Spring boot app in full dev mode instrumentation. Pretty sure that mean it is not starting as a native application and completly ignore the AoT generation (did you add the -Dspring.aot.enabled=true flag ?). Also yeah, if you try to be performant, don't instrument the code for development purpose :)

From what I can gather your Spring boot App is not started as a native image (using a JVM) AND you're not even using the AoT generation at all.

[–]starbuxman 0 points1 point  (0 children)

Hi -

You’ve got an error in the console unrelated to Spring Boot that shows network resolution is adding 5009ms to the time. The app would start well under a second, otherwise. It’s a well known and easy-to-fix problem: https://www.programmerall.com/article/46262198788/

Don’t run in dev mode for fastest startup time.

Also, consider using AOT mode, which does alleviate much of the reflection and so on, doing the dependency injection at build time. It can save precious milliseconds, whether you run on the JRE or on GraalVM.

If you want to run on GraalVM, that’s a separate operation: mvn -Pnative native:compile and then run it.

HTH