しばやん雑記

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

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

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

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

f:id:shiba-yan:20160220223338p:plain

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

How to: Determine Which .NET Framework Versions Are Installed

今回アップデートされたことで、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 というキーが追加されていたので、間違いなく有効になっていると思います。

f:id:shiba-yan:20160220223557p:plain

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

f:id:shiba-yan:20160220230656p:plain

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

f:id:shiba-yan:20160220230616p:plain

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