時には、実行に時間がかかり、製品のボトルネックとなるループや再帰関数が発生することがあります。ループを少し早くする前に、完全に削除する方法があるかどうかを検討して、数分を費やしてください。別のアルゴリズムがやりますか?他に何かを計算しながらそれを計算できますか?回避策が見つからない場合は、ループを最適化することができます。これは簡単です。物を動かす。結局のところ、これには独創性だけでなく、各種類の陳述と表現の費用の理解も必要となります。ここにいくつかの提案があります:
- 浮動小数点演算を削除します。
- 新しいメモリブロックを不必要に割り当てないでください。
- 定数を一緒に折りたたみます。
- I / Oをバッファに移動する。
- 分裂しないでください。
- 高価な型キャストをしないでください。
- インデックスを再計算するのではなく、ポインタを移動する。
これらの各操作のコストは、特定のシステムによって異なります。いくつかのシステムでは、コンパイラとハードウェアがこれらのことを行います。明確で効率的なコードは、特定のプラットフォームの理解を必要とするコードよりも優れています。 Next How to Deal with I/O Expense