2010-12-31 5 views
1

C++でコードを最適化する方法は?C++でコードを最適化する方法は?

+1

すごく広い質問です。 –

+0

「早すぎる最適化はすべての悪の根源」の下に投票されるので、これは答えではありません:私はきれいで簡単なコードを書いていますが、文脈によっては遅いことを避けてみてください(いくつかの文脈では、私は他の人たちで新しい/削除を避けようとしています[パフォーマンスの重要性に依存しています] – mmmmmmmm

+1

次のリンクhttp://www.agner.org/optimize/を読んでください。言われたすべての単一の最適化を行うことができるので、試してみてはいけません。 –

答えて

6
  1. 書き込みコード
  2. プロフィールコード
  3. 微調整のパフォーマンスホットスポット
  4. まだ十分に速くない場合は、2
2

ボトルネックであることがわかるまで、最も重要な手法は最適化ではありません。

4

1に進みますが)私ができる最もクリーンで簡単なコードを書きます。
2)最適化された設定の最新のコンパイラを使用します。
3)完了してください。

オプション:
4)私は何かが著しく遅いと思う場合、私のアプリケーションをプロファイルします。
5)自分のプロフィールの結果を使って、何が遅いかを見つけて修正します。
6)できるだけ清潔で簡単な状態にしてください。
7)完了してください。

+1

これらのうち、ステップ6ははるかに難しい(IMO)です。高度に手に最適化されたコードをきれいにすることは、驚くほど難しいことです。それはまたすごく楽しいことです:-D –

+0

私は過去3回しなければならなかった回数は私の手に数えることができます。 -O4はいつも素敵です。シェルフ上のKnuthのコピーは、コンパイラがそれを行うことができないため、O(n.ln(n))が常にo(n^2)よりも良くなるため、正しいアルゴリズムを選ぶのに便利です。 –

+0

@Martin :O(nlogn)が平均の場合ではなく、qsortとバブルのソート。逆順でソートされた数字は、qsortをO(n^2)に減らします...... –

0

コーディング標準に従います。一読してくださいhttp://sourcemaking.com/

+1

これは何の問題もありませんか? –

+0

Infact mate、そうです。どんな言語で作成したとしても、基本を正しく理解すれば、コードは最適化されます。それ以外にも、各プロジェクトには、経験から学ぶことができるだけでなく、単に質問するだけではなく、さまざまな最適化ルールやテクニックがあります。 – Samnan

+2

@Samnan:効率的に書くと、コードが最適化されます。コーディング標準は、通常、パフォーマンス以外の品質を重視します。あなたがJavaでよく見られる "ベストプラクティス"に従うならば、あなたのプログラムは無限の抽象化レイヤーを使ってその時間の95%を費やすつもりです。それは速くないでしょうが、多くの人々のガイドラインに従います。 – jalf

関連する問題