it技術:dotnet:nativeaot
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
it技術:dotnet:nativeaot [2021/11/05 18:12] – [NativeAOTのメモ] yajuadmin | it技術:dotnet:nativeaot [2021/12/09 02:39] (現在) – [NativeAOTのメモ] yajuadmin | ||
---|---|---|---|
行 30: | 行 30: | ||
=== C++ によるデスクトップ開発 === | === C++ によるデスクトップ開発 === | ||
- | Visual Studioのとインストールする環境の選択画面にてワークロードタブに「C++によるデスクトップ開発」にチェックを入れ、「インストール」をクリックします。\\ | + | Visual Studioのインストールする環境の選択画面にてワークロードタブに「C++によるデスクトップ開発」にチェックを入れ、「インストール」をクリックします。\\ |
https:// | https:// | ||
行 42: | 行 42: | ||
=== イメージがネイティブか判断 === | === イメージがネイティブか判断 === | ||
- | 対象のexeが、.NET(managed)で作られたか判断 | + | 対象のexeが、.NET(managed)で作られたか判断\\ |
[[https:// | [[https:// | ||
行 67: | 行 67: | ||
1000 _RDATA | 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.1636103540.txt.gz · 最終更新: 2021/11/05 18:12 by yajuadmin