it技術:dotnet:nativeaot
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| it技術:dotnet:nativeaot [2021/10/21 18:03] – [.NETネイティブ] yajuadmin | it技術:dotnet:nativeaot [2021/12/09 02:39] (現在) – [NativeAOTのメモ] yajuadmin | ||
|---|---|---|---|
| 行 30: | 行 30: | ||
| === C++ によるデスクトップ開発 === | === C++ によるデスクトップ開発 === | ||
| - | Visual Studioのとインストールする環境の選択画面にてワークロードタブに「C++によるデスクトップ開発」にチェックを入れ、「インストール」をクリックします。\\ | + | Visual Studioのインストールする環境の選択画面にてワークロードタブに「C++によるデスクトップ開発」にチェックを入れ、「インストール」をクリックします。\\ |
| https:// | https:// | ||
| https:// | https:// | ||
| + | |||
| + | ==== NativeAOTのメモ ==== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | === イメージがネイティブか判断 === | ||
| + | 対象のexeが、.NET(managed)で作られたか判断\\ | ||
| + | [[https:// | ||
| + | |||
| + | < | ||
| + | cd " | ||
| + | dumpbin /clrheader xxxx.exe | ||
| + | </ | ||
| + | |||
| + | dumpbinでは、mspdb80.dllが必用\\ | ||
| + | mspdb80.dllは、”C: | ||
| + | |||
| + | <code text 結果> | ||
| + | File Type: EXECUTABLE IMAGE | ||
| + | |||
| + | Summary | ||
| + | |||
| + | F1000 .data | ||
| + | 88B000 .managed | ||
| + | BF000 .pdata | ||
| + | AA9000 .rdata | ||
| + | 67000 .reloc | ||
| + | 1000 .rsrc | ||
| + | D9000 .text | ||
| + | 1000 _RDATA | ||
| + | </ | ||
| + | |||
| + | === イメージサイズ縮小 === | ||
| + | TestIF.exe 21.9 MB(23, | ||
| + | ただし、最適化前の速度が平均 570ms に対して、最適化後の速度が平均 1660ms と約3倍遅くなった。 | ||
| + | |||
| + | <code xml TestIF.csproj> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | |||
| + | <!-- https:// | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **IlcOptimizationPreference Size**\\ | ||
| + | 最適化されたコードを生成するときは、小さいコードサイズを優先します。 | ||
| + | |||
| + | **IlcOptimizationPreference Speed**\\ | ||
| + | 最適化されたコードを生成するときは、コードの実行速度を優先します。 | ||
| + | |||
| + | **RootAllApplicationAssemblies デフォルト: | ||
| + | 一部のリフレクションコーディングの使用法との互換性のために、コンパイラが未使用のコードを削除しないようにします。このオプションをfalseに設定すると、実行可能ファイルのサイズが小さくなります。 | ||
| + | |||
| + | **IlcGenerateCompleteTypeMetadata デフォルト: | ||
| + | 実行可能ファイルからオブジェクトにアクセスする場合に、メタデータタイプの生成を許可します。このオプションをfalseに設定すると、実行可能ファイルのサイズが小さくなります。 | ||
| + | |||
| + | **IlcGenerateStackTraceData デフォルト: | ||
| + | スタックトレースでのテキスト名の生成を許可します。このオプションをfalseに設定すると、実行可能ファイルのサイズが小さくなります。 | ||
| + | |||
| + | **IlcDisableReflection デフォルト: | ||
| + | リフレクションフリーモードは、CoreRTコンパイラとランタイムのモードであり、リフレクションAPIの機能を大幅に削減\\ | ||
| + | https:// | ||
| + | |||
| + | **IlcFoldIdenticalMethodBodies デフォルト: | ||
| + | このオプションは、同一のメソッド本体を折りたたむ(メソッド本体の重複排除)。このオプションをtrueに設定すると、実行可能ファイルのサイズが小さくなります。しかし、予期しない動作が発生する可能性があります。 | ||
| + | |||
| + | **IlcDisableUnhandledExceptionExperience**\\ | ||
| + | 未処理の例外のスタックトレースをコンソールに出力するコードを無効にします。 | ||
| + | |||
| + | **IlcInvariantGlobalization デフォルト: | ||
| + | 英語以外のカルチャをサポートするコードとデータを削除するグローバリゼーション不変モードを有効にします。コードとデータを削除すると、アプリが小さくなります。\\ | ||
| + | https:// | ||
| + | |||
| + | === Linux-Arm および Linux-Arm64 サポート対象外 === | ||
| + | 2021/ | ||
| + | |||
| + | < | ||
| + | dotnet publish -r linux-arm64 -c release | ||
| + | or | ||
| + | dotnet publish -r linux-arm -c release | ||
| + | </ | ||
| + | |||
| + | ==== 参照 ==== | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
it技術/dotnet/nativeaot.1634807019.txt.gz · 最終更新: 2021/10/21 18:03 by yajuadmin
