自動最適化と手動最適化とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 自動最適化と手動最適化の意味・解説 

自動最適化と手動最適化

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/21 23:57 UTC 版)

最適化 (情報工学)」の記事における「自動最適化と手動最適化」の解説

最適化コンパイラ自動的に行うこともできるし、プログラマが自ら行うこともできる局所的な最適化効果限定的であり、大域的な最適化の方が効果大きい。一般に、より優れたアルゴリズムデータ構造見出すことが最も強力な最適化となる。一方組込み用途のようにアクセス先がI/Oアドレスマッピングされている場合最適化結果としてアクセス順序入替えられると組込み機器としては問題発生する可能性がある。そのような場合volatile キーワードを付与することで、アクセス順序の入替を抑制することが可能である。 システム全体最適化自動化するには複雑すぎるため、人間の手で行うことが多い。その場合、プログラマシステム管理者が自らコード修正し性能改善する効率改善されるとしても、自動最適化比べれば遥かにコスト要する作業である。 第一にリソースを最も多く消費している箇所ボトルネック)を見つけるため、プロファイラ利用することが何よりも重要である。プログラマボトルネックがどこか正確に把握していると思っているものだが、そのような予測間違っていることが多々ある重要でないコード最適化全体性能に与え効果少ない。 ボトルネック特定したら、まずそのプログラム使われているアルゴリズム再考するころから最適化が始まる。通常汎用的アルゴリズムよりも特定の問題特化したアルゴリズムの方が調整しやすい。例えば、大きなリストソートする処理では、効率のよい汎用アルゴリズム1つであるクイックソートを使うのが一般的である。しかし、ソート対象性質判っていれば(例え事前に何らかの順番並んでいるなど)、その他のアルゴリズム特製のソートルーチンの方が有効な場合もある。 最善アルゴリズム選択されていると判明した場合コード最適化開始されるループ展開をしたり、なるべく小さデータ型を使うようにしたり(浮動小数点でなくてもよい計算整数計算直すなど)する。 性能ボトルネックアルゴリズム問題データ構造問題ではなく言語制限による場合もある。このためプログラム重要な部分異なプログラミング言語書き換え、よりマシンに近いアクセスを行う場合がある。例えば、Pythonなどの高級言語C言語モジュール使用して高速化したりする。C言語書かれプログラムなら、一部アセンブリ言語置換するD言語などはインラインアセンブラ機能利用できるパレートの法則によれば書き換えプログラムごく一部だけで済む。従って、最適化にかかるコスト全体性能向上が十分見合う結果となる。 手動最適化可読性損なうことが多い。最適化にあたっては、その文書化将来の開発への影響評価が重要である。 自動最適化を行うプログラムオプティマイザ (optimizer) と呼ぶ。オプティマイザコンパイラ内蔵されていることが多くコンパイル中に最適化が行われる。オプティマイザ生成されコード特定のプロセッサ向けに最適化することが多い。従って自動最適化コンパイラ最適化とほぼ同義である。 一部高級言語EiffelEsterel)は中間言語使ってプログラム最適化する。 グリッド・コンピューティング分散コンピューティングでは、稼働率の高いコンピュータから別の稼働率の低いコンピュータタスクを移すことでシステム全体最適化を行う。

※この「自動最適化と手動最適化」の解説は、「最適化 (情報工学)」の解説の一部です。
「自動最適化と手動最適化」を含む「最適化 (情報工学)」の記事については、「最適化 (情報工学)」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「自動最適化と手動最適化」の関連用語

自動最適化と手動最適化のお隣キーワード
検索ランキング

   

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



自動最適化と手動最適化のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS