Spring Bootの起動時間を短縮する
layers Dev/Java/Spring Boot
label
Java
label
Spring Boot
date_range
更新日時 : 2022/05/30 03:11 date_range
投稿日時 : 2021/03/28 05:20概要
- Spring Bootの起動時間を短縮する方法をまとめる
- 既にあるアプリケーションの動作をなるべくそのまま短縮するようにする
- 解説は一旦あとで
- 厳密に何度も計測したわけではないかつローカルのMacbookで実行しただけなので注意
- できればあとで実行環境で計測する
実施前
起動時間
6.289 seconds
対象アプリ
https://github.com/vagivagi/blog-api
- Java11
- Spring Boot 2.3.1.RELEASE
- ローカルでh2dbを起動
2021-03-28 14:01:47.799 INFO 31401 --- [ main] o.vagivagi.blog.api.BlogApiApplication : Started BlogApiApplication in 6.289 seconds (JVM running for 7.178)
起動オプション
XX:TieredStopAtLevel
- 4.397 seconds
2021-03-28 14:10:26.695 INFO 31556 --- [ main] o.vagivagi.blog.api.BlogApiApplication : Started BlogApiApplication in 4.397 seconds (JVM running for 5.156)
noverify
- 5.822 seconds
2021-03-28 14:11:52.028 INFO 31565 --- [ main] o.vagivagi.blog.api.BlogApiApplication : Started BlogApiApplication in 5.822 seconds (JVM running for 6.59)
Spring Bootオプション
Beanの遅延初期化
- 3.299 seconds
spring.main.lazy-initialization=true
2021-03-28 14:13:00.796 INFO 31582 --- [ main] o.vagivagi.blog.api.BlogApiApplication : Started BlogApiApplication in 3.299 seconds (JVM running for 3.947)
実施後
- 4.871 seconds
- 4.664 seconds
- 4.5 seconds
上記のすべてのオプション設定した場合、3回程実施して5秒以下に気持ち落ち着いたか?
もともと30秒もかかっていないので、どれくらい効果があるかいまいちわからん。
今度もっと遅いアプリで試してみる。
2021-03-28 14:14:11.812 INFO 31589 --- [ main] o.vagivagi.blog.api.BlogApiApplication : Started BlogApiApplication in 4.871 seconds (JVM running for 6.188)
2021-03-28 14:14:48.893 INFO 31594 --- [ main] o.vagivagi.blog.api.BlogApiApplication : Started BlogApiApplication in 4.664 seconds (JVM running for 5.569)
2021-03-28 14:15:35.969 INFO 31605 --- [ main] o.vagivagi.blog.api.BlogApiApplication : Started BlogApiApplication in 4.5 seconds (JVM running for 5.217)