「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>.NET Core]]

* 目次 [#lee67fa8]
#contents

*概要 [#ode3623d]
段階コンパイル
-JITの最適化を段階的に行い、パフォーマンスを改善する仕組み。
-一部のシナリオではプリコンパイル済みのコードより速くなる。

*詳細 [#n65761fe]

**仕組み [#xd110764]
**仕組 [#xd110764]

***ReadyToRun (R2R) [#ve0eb335]
コンパイル時に [[Tier 0>#nc5d17d4]] なネイティブコードも同時に生成する仕組み。

***Tiered Compilation [#be0b98af]
[[Tier 0>#nc5d17d4]] なネイティブコードを実行時に [[Tier 1>#f4819a37]] へ差し替える仕組み。

**段階 [#ca55d506]
コンパイルの段階

***Tier 0 [#nc5d17d4]
-初めて呼ばれるメソッドは一律「最適化なし」でJITコンパイル
-使用頻度の高いメソッドは実行環境へ最適化されたコードへの差し替えが出来る。

***Tier 1 [#f4819a37]
-呼ばれた回数をカウントして、一定数を越えたら「最適化あり」でJITコンパイル
-オン中でも戻り先アドレスに補正をかけるので、オン中にJITコンパイル可能

*参考 [#u1189c89]
-段階コンパイル (Tiered Compilation) | ++C++; // 未確認飛行 C ブログ~
https://ufcpp.net/blog/2018/12/tieredcompilation/

-.NET Core 3.0 で有効化される Tiered Compilation と ReadyToRun について - しばやん雑記~
https://blog.shibayan.jp/entry/20190912/1568291738

----
Tags: [[:.NET開発]], [[:.NET Core]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS