適応的コンパイルとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 適応的コンパイルの意味・解説 

適応的コンパイル (Adaptive Compilation)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/12 15:53 UTC 版)

実行時コンパイラ」の記事における「適応的コンパイル (Adaptive Compilation)」の解説

上のようなJITコンパイラ短所を補うためのJITコンパイル一方式として適応的コンパイルという方式がある。これは、起動当初インタプリタとして実行し、よく呼び出されるメソッド繰り返し実行されるコード検出プロファイリング)を行いそのようなコードのみをコンパイルする、というものである。このとき、コード使われ時にすぐにコンパイルするのではなく何回呼ばれた後に遅らせてコンパイルを行うが、このことを遅延コンパイル (Lazy Compilation)と呼ぶ。一般にプログラムの実行においてその実時間大半プログラム中のごく一部において費やされる、という経験則がある(実際比率については状況依存するが、典型的にコード実行時間80%は20%コードにおいて費やされるといわれ、80-20の法則呼ばれる)。それと似て、適応的コンパイルにおいては実行時間大半費やされるような、ボトルネックとなるコードのみをコンパイルすることで、起動時オーバーヘッド利用メモリ増大抑えたうえで、効率よく実行速度向上することができる。この適応的コンパイルによる適応的最適化 (Adaptive Optimization) は、静的コンパイルでは得られない情報をも元にして最適化が行えるため、静的コンパイルより、むしろパフォーマンス上がる場合もある。 注意すべきは、企業バッチ処理である。数百以内といった少量レコード処理するバッチジョブが、一日に何百本、何千本も走る企業が多い。そういう場では、JITコンパイル用いた場合、適応的コンパイルをしてさえも、ジョブ走り初めに使われるユーザクラスさらにはコアクラスと呼ばれるような共通的なクラスコンパイル処理がロード処理を伴いのべ何百回と行われる。処理件数少ないので、使うクラス群の多くコンパイル効果が出る前に、あるいはコンパイルさえされないうちにジョブ実行終わってしまう。その結果正味のユーザロジックよりこうしたオーバヘッド」の方が大きな比率占める。CPUなどの資源が、いつも同様のプログラム群のコンパイル消費されてしまい、待ち生じて多重効果妨げにもなる。処理件数によってJIT/AOTの有利不利が変わるが使い分ける仕組みは非常に作りにくい。また、Javaについていえば)AOTコンパイラ通常適用しにくい。[独自研究?]これらの理由で、性能面ではマイナスな場面で一般的な[独自研究?]JITコンパイラ使用していることがある長時間バッチジョブおよびオンラインでは、JITコンパイラ、特に適応的コンパイルが概してフィットしている。[独自研究?] 適応的コンパイルの最適化のために、何回実行されたらコンパイルするか、といったパラメタ用意されているコンパイラがある[要出典]。パラメタチューニングは万能ではないとしても重要である。[独自研究?]

※この「適応的コンパイル (Adaptive Compilation)」の解説は、「実行時コンパイラ」の解説の一部です。
「適応的コンパイル (Adaptive Compilation)」を含む「実行時コンパイラ」の記事については、「実行時コンパイラ」の概要を参照ください。

ウィキペディア小見出し辞書の「適応的コンパイル」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「適応的コンパイル」の関連用語

適応的コンパイルのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



適応的コンパイルのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの実行時コンパイラ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS