Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9525

【C#】.NET6でBlazor WebAssemblyのAOTを試してパフォーマンスを測定してみた

$
0
0
初投稿です。 導入 ついにきましたね、.NET 6。 この記事( https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/#blazor-and-mono )によると Blazor WebAssemblyにAOTコンパイルが実装され16倍早くなったらしいのですが、実際どれくらい早くなったか試してみました。 測定内容 10^6以下の素数を列挙するのにかかる時間を測定してみました。n=10^6として以下の関数の実行にかかる時間の測定を10回行い、平均と最大をとりました。 Blazor WebAssemblyは.NET6でReleaseビルド、AOTあり/なしを測定しました。 比較用に.NET6でのConsoleアプリケーションでの結果もとりました。 AOTを有効にするには公開(Publish)を実行する必要があります、普通に実行するだけではうまくいきません。 ちなみに、AOTなしに関しては.NET5/.NET6で差がみられなかったので.NET5は省略しています。 private IEnumerable<int> FindPrimes(int n) { if (n < 0) { return Array.Empty<int>(); } var isPrime = new bool[n + 1]; Array.Fill(isPrime, true); isPrime[0] = false; isPrime[1] = false; for (int i = 2; i < isPrime.Length; i++) { if (!isPrime[i]) { continue; } for (int j = i << 1; j < isPrime.Length; j += i) { isPrime[j] = false; } } return isPrime.Select((x, i) => (x, i)).Where(tuple => tuple.x).Select(tuple => tuple.i); } 環境 OS Windows10 64bit(21H2) CPU Ryzen7 1700 (@3.7Ghz) RAM DDR4-3000 16GB (十分な空きあり) 結果 環境 平均値 最大値 Blazor AOTなし 1986ms 1995ms Blazor AOTあり 574ms 579ms Console 50.8ms 124ms 考察 純粋な計算での比較でしたが3.4倍以上は高速化されており、効果は大きいようです。 しかし依然としてコンソールアプリケーションよりは10倍以上遅い もう少し早くなってくれるといいんですがね、今後に期待しましょう。

Viewing all articles
Browse latest Browse all 9525

Trending Articles