最適化
1-
-
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やプログラム言語は「バグって」おり、トロ臭い結果を出すので人間様が何とかしなきゃいけないという。
-
11
ななしのよっしん
2019/10/25(金) 12:39:35 ID: sC+QVJOMCJ
- 今流行りの人工知能の「学習」って最適化のことですよね 学習って呼ぶと機械がノート広げて勉強してるみたいで、一般の人とエンジニアとではかなり伝わってるイメージが違うように思われる
1-