私はよくconst
、次のように、変更されていないローカル変数に使用します。
const float height = person.getHeight();
これにより、コンパイルされたコードが潜在的に高速になり、コンパイラーがさらに最適化できるようになると思います。または私は間違っています、そしてコンパイラはローカル変数が決して変更されないことを彼ら自身で理解することができますか?
私はよくconst
、次のように、変更されていないローカル変数に使用します。
const float height = person.getHeight();
これにより、コンパイルされたコードが潜在的に高速になり、コンパイラーがさらに最適化できるようになると思います。または私は間違っています、そしてコンパイラはローカル変数が決して変更されないことを彼ら自身で理解することができますか?
または私は間違っています、そしてコンパイラはローカル変数が決して変更されないことを彼ら自身で理解することができますか?
ほとんどのコンパイラは、これを自分で理解するのに十分賢いです。むしろ、マイクロ最適化ではなく、定数の正確性を確保するために
使用する必要があります。constの正しさにより、コンパイラーは正直な間違いを防ぐのに役立ちます。したがって、保守性の理由と愚かな間違いを防ぐために、可能な限り使用する必要があります。 const
const
私たちが書くコードのパフォーマンスへの影響を理解するのは良いことですが、過度のマイクロ最適化は避けるべきです。パフォーマンスに関しては、以下に従う必要があります。
代表的なデータセットのプロファイリングを通じて、リソース
20%
を使用するコードを特定し、それらのボトルネックの最適化を試みます。80%
このパフォーマンスの違いはほぼ確実に無視できますが、コードのドキュメント化の理由から、可能な限りconstを使用する必要があります。多くの場合、コンパイラーはとにかくこれを理解し、自動的に最適化を行うことができます。const
パフォーマンスよりもコードの可読性と明快さを重視しています。