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