単語記事: 最適化

編集  

最適化とは、特定の用途や環境に対して最適になるよう調整することである。

概要

単に「最適化」と言うと文脈に応じて幾つかの意味が考えられる。ここではその例を示す。

最適化問題とは、ある関数関数)(例えばf(x,y)=xy)とその変数の条件(例えばx>0,y>0,x+y<=10)が与えられている時に、その関数の値を最大化または最小化する変数の値をめる問題のことを最適化問題と呼ぶ。

ソフトウェア最適化に関して言えば、ソフトウェアはある程度汎用的な的に対して汎用的な環境で動くよう、工業製品で言うところのある程度の「遊び」が設けられている場合が多い。これに対して、速度向上を的として排除しようとする試みがソフトウェア最適化である。ソフトウェア最適化には、コンパイラによって自動的に行われるものと、人の手によって手動で行われるものが有る。最適化によって駄な処理が減りソフトウェアの動作速度が大きく向上する場合も有る。その一方で、特定環境や条件で動かなくなってしまったり、新たなバグを埋め込んでしまったりする場合も考えられ、必ずしも最適化をすることが適切であるとも言い切れない。中には、動いているコードを(人の手では)最適化するな、という意見も有る。

関連動画

以下は何れもハードディスクドライブ最適化に関連する動画

関連商品

関連項目


【スポンサーリンク】

携帯版URL:
http://dic.nicomoba.jp/k/a/%E6%9C%80%E9%81%A9%E5%8C%96
ページ番号: 5026466 リビジョン番号: 1738315
読み:サイテキカ
初版作成日: 13/01/12 21:32 ◆ 最終更新日: 13/02/03 11:03
編集内容についての説明/コメント: SEO対策の記事があったのでそれに基づき修正
記事編集 / 編集履歴を閲覧
このエントリーをはてなブックマークに追加

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

最適化について語るスレ

1 : ななしのよっしん :2013/04/22(月) 01:44:50 ID: 2NpTwuj508
int i = 23;
i = i / 5 * 5;

これを最適化しない場合は「 i の値は 20
しかし、最適化をすると「 i の値は 23 」になってしまうことがある
っていうのを最近先生に教えてもらった

2 : ななしのよっしん :2013/04/22(月) 01:59:10 ID: gKeR9nLAqC
>>1
それ「最適化」の言葉の使い方ちがう・・・
何の言でやったか知らんけど、整数の数値の割り算は小数点以下は視されるのでi/5が4になるだけで、結果的に4*5が計算結果になる
3 : ななしのよっしん :2013/04/22(月) 07:16:23 ID: ttHuE5Bb0J
>>2 使い方はあってるよね。

コンパイラとかが最適化で、整数演算の順番を入れ替えたり省略したりするとき、演算結果が変わってしまうことがある。
4 : ななしのよっしん :2013/05/15(水) 14:23:59 ID: Z4dQR3WQ45
パーフェクトワールドは?
5 : HEROMAN :2013/09/07(土) 22:22:00 ID: 3rTHCX/GwS
最適化繋がりでダンボール戦機Wいれてもいいのよ?
6 : ななしのよっしん :2013/12/01(日) 00:26:27 ID: WVYtYqJVec
最適化の教訓 wikipediaより
「細かい効率のことは忘れて、時間の97%について考えよう。時期尚最適化諸悪の根源だ。それでも残り3%についても機会を逃すべきではない」 - Donald E. Knuth
プログラム最適化の第一法則: 最適化するな。プログラム最適化の第二法則(上級者限定): まだするな。」 - Michael A. Jackson
「ボトルネックは思いもよらない場所に存在するので、ボトルネックの箇所を特定するまで性最適化(ハック)してはいけない」 - Robert C. Pike

要するに、速く動作する事より正しく動作することがかに重要であり、駄な最適化をしてバグを埋め込んではいけないという事
どうしても最適化したい場合も、それがボトルネックになっている事を計測してから最適化する事。勘で最適化してはいけない
7 : ななしのよっしん :2013/12/01(日) 00:35:32 ID: Iln0OIODrg
と、かようなまでにプログラマという人種は、最適化の誘惑に惑わされ続ける存在である
8 : ななしのよっしん :2013/12/01(日) 00:42:01 ID: WVYtYqJVec
一方で、テストする対が複雑になればなるほどパフォーマンスの測定を行う事が困難になるという問題がある。
自分も一度WEBアプリの性測定に付き合わさせられたが、結局どこにボトルネックがあるのか分からずじまいで時間の無駄だった。まあこれはうちの会社の技術準が低いのもあるだろうけど
9 : ななしのよっしん :2015/04/14(火) 11:10:29 ID: Iln0OIODrg
>>6
直接的なバグにかぎらず、
・のちのちの変更や拡の妨げになる
・労に対してメリットが微小であるケースがほとんど

ということを忘れがちなことに対する
10 : ななしのよっしん :2016/09/03(土) 02:36:48 ID: c7cRg2PI4Y
設計が正しければ理なく美しい実装となり、結果的に自然と最適なコードができる・・・というのが理想ではある。
現実にはCPUプログラム言語は「バグって」おり、トロ臭い結果を出すので人間様が何とかしなきゃいけないという。
ニコニコニューストピックス
電ファミwiki
  JASRAC許諾番号: 9013388001Y45123
  NexTone許諾番号: ID000001829