しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure Web Apps でも .NET Framework 4.6.1 と RyuJIT が使えるようになりました

数日前に Web Worker に対して reimage が掛かっていたので気になって調べたところ、.NET Framework 4.6.1 がインストールされていました。

調べ方はいつものように reg query を使うだけです。

日本語版のドキュメントには .NET 4.6.1 の値が書いていませんでしたが、英語版はしっかりと更新されていました。Release の値が 394271 (0x6041F) なら 4.6.1 となります。

Determine which .NET Framework versions are installed - .NET Framework | Microsoft Learn

今回アップデートされたことで、SQL Server 周りで便利な機能が使えるようになります。

.NET Framework 4.6.1 is now available! - .NET Blog

特に SQL Database でのリトライ処理が SqlClient に組み込まれたので、カスタムな処理を作る必要が無くなりました。詳しくはムッシュ先生のブログを参照してください。

.NET 4.6 にアップデートされた時は無効化されていましたが、.NET 4.6.1 では RyuJIT が有効にされたみたいですね。RyuJIT が無効化されていることは、Azure 界の抱かれたい男 No.1 が書いてました。

Azure App Service に.NET Framework 4.6がロールアウトされました | ブチザッキ

RyuJIT が有効になっているかどうかは、同じくレジストリを調べると簡単にわかります。

useLegacyJit が設定されていなければ有効になっているはずです。Web Apps の場合は UseRyuJIT というキーが追加されていたので、間違いなく有効になっていると思います。

RyuJIT は x64 向けに開発されたものなので、当然ながら使うには Web Apps も x64 で動作させる必要があります。ポータルから Platform を 64bit に設定しておきます。

本当に有効になっているのかを、System.Numerics.Vectors を使って簡単に確認しておきました。

この比較では 64bit で動作させた方が高速に計算出来ています。Web Apps の B1 以上を使う場合には Platform を基本的に 64bit に設定しておいた方が、今後は幸せになれそうです。