Following s1p tweets, I found an interesting one this morning.
Marcin Grzejszczak@mgrzejszczakWat?! @david_syer shows that you can run a @springframework app with Netty in less 0.2 seconds!!!😱😱😱15:24 PM - 27 Sep 2018
That’s why I enjoyed this repository today.
https://github.com/dsyer/spring-boot-startup-bench
Build failed
When I tried to build it with $ ./mvnw clean install
, it failed. Reading the error message, I modified one line and the build succeeded.
Strange Result
Then I ran the benchmark with $ (cd benchmarks/; java -jar target/benchmarks.jar)
. But it showed a strange result.
The petclinicLatest(Precompute)Thin
results were too slow.
Thin?
I didn’t know what the Thin
means. Then I reached to https://github.com/dsyer/spring-boot-thin-launcher and understood it’s an experimental library to make the jar file thin and download jars when it starts for the first time.
I read the source code of the benchmark module to know how it runs the target, and added --thin.debug=true
to see the debug output.
java -Xmx128m -Djava.security.egd=file:/dev/./urandom \
-XX:TieredStopAtLevel=1 \
-jar petclinic-latest/target/petclinic-latest-1.4.2-thin.jar \
--thin.debug=true \
--server.port=0
SNAPSHOT?
I forgot to take a memo, but it showed jar resolution log. I noticed the petclinic-latest loaded some SNAPSHOT version libraries.
ah, ThinJarWrapper might be slower if the app depends on SNAPSHOT version?16:35 PM - 29 Sep 2018
I guess every time it would check the SNAPSHOT version of the maven repository. So I modified the pom file to use RELEASE version.
Then…
It became underatandable speed after I changed the SNAPSHOT to RELEASE version (∩´∀`∩)16:57 PM - 29 Sep 2018
Though it would be different from the original aim to compare the SNAPSHOT version speed, I enjoyed the repository, and I would like to understand the details of this repository especially Flux benchmarks which is on the tweet picture.
Top comments (0)