概要
Java のフレームワークの一つに quarkus というものがあります。Java のフレームワークといえば SpringBoot が浮かぶと思いますが、こちらも負けず劣らずのフレームワークなのではないかと思っています!
Quarkus といえば、Native Image での起動をすることで高速に起動することが有名で、それが利点でもあったりするのですが、実は JVM 起動でも高速です!というお話を今回していきます!
仕組み
SpringBoot との比較で説明することになりますが、結論からいうと、DI(Dependency Injection) の解決のタイミングが異なります。そのことが理由で、Quarkus は起動は早いのです!
![](https://ryo-ux-it-agile.com/wp-content/uploads/2022/07/image-7.png)
![](https://ryo-ux-it-agile.com/wp-content/uploads/2022/07/image-7.png)
![](https://ryo-ux-it-agile.com/wp-content/uploads/2022/07/image-7.png)
端的に言うと、上図のような違いがあります。
従来は、起動時に Bean アノテーションのスキャンと各クラスの Inject のスキャンと依存性の解決を行っています。
ここが、時間がかかってしまう原因で
Quarkus では、これらの処理はビルド時に行います。
なので、 Quarkus の起動は JVM でも高速だといえます!!
実際に Spring Boot と Quarkus で同じ API を作って起動時の時間を図ってみても良いかもしれませんが、同じものを作るのもちょっと大変なので、取り合えす、理論上高速であるといっておきます!
でも、現在 Spring Boot と Quarkus の両方を使ってみているのですが、たしかに Quarkus の起動が早いなぁと感じますね。
コメント