🏇

Native AOT は実際のアプリでどのくらい速いのか

に公開

はじめに

ベンチマークなどでは好成績を誇る Native AOT(以降「AOT」)ですが、実際の Windows アプリでは速さを体感できるのでしょうか。

カラオケ動画作成アプリ「ニコカラメーカー 3」(Windows デスクトップアプリ・WinUI 3)において、AOT 適用前後の起動速度を録画しました。

結果

AOT と非 AOT の起動の様子を並べて比較した動画を公開しましたのでご覧ください。

Native AOT 速度比較(新旧ニコカラメーカー 3)
https://www.nicovideo.jp/watch/sm45818621

並べるとよく分かりますが、体感で違うと分かるレベルで速くなりました。

数値としてまとめると以下となります。

AOT 非 AOT 倍速
起動時間 0.9 秒 1.5 秒 -0.6 秒 1.7 倍速

補足

動画内の補足にもありますが、AOT と非 AOT でバージョンが少し異なるため、同一条件での比較ではありません。

とはいえ、速度向上の主要因は AOT 化したことなのかなと思っています(詳細に検証した訳ではないので推測ですが)。

測定環境などは動画内の補足画面をご覧ください。

感想

実アプリで体感できる違いが出たので、個人的には AOT で開発するモチベーションが上がりました。起動時間が長いとアプリを起動するのが面倒になってしまうので、起動時間が短縮できたのはとても嬉しいです。

動画にはしていませんが、アプリ内でのカラオケ動画出力時間も 9% ほど短縮されましたので、起動以外でもメリットがありました。

一方で、AOT はまだ新しい技術のためできないことがあったりノウハウも少なかったりして、開発は大変というのが正直なところです。とはいえ、元々 WinUI 3 のアプリ開発は地獄なので、少々大変さが上乗せされたところで気にするほどのことでもないのかもしれません。ちなみに、地獄なのに WinUI 3 を使っているのはメリットもあるからです。

個人的にはこれが最初で最後の AOT 速度比較になるかと思っています。というのも、今後はすべて最初から AOT で開発するつもりだからです。AOT の知見は地道にこちらの記事に追加していこうと思っています。

確認環境

項目 環境
OS Windows 11 Home 23H2
Visual Studio 2022 / 2026
.NET 9.0 / 10.0
Template Studio for WinUI 5.5
WinUIEx 2.x
Windows App SDK 1.7.x / 1.8.x

参考リンク

Discussion