2011-07-21 13 views
11

プロジェクトのすべてのクラスを同じ名前空間に入れると、すべてのクラスがプロジェクトのどこでも利用できます。しかし、私が別の名前空間を使うと、すべてのクラスがどこでも利用できるわけではありません。私は制限を受ける。名前空間の使用はパフォーマンスやコンパイル時間に影響しますか?

名前空間を使用すると、何とかコンパイル時間に影響しますか?コンパイラはそれぞれの名前空間にクラスが少なく、すべての名前空間が常に使用されているわけではないので、適切なクラスを見つけるのが少し難しいかもしれません。

名前空間を使用すると、アプリケーションのパフォーマンスに影響がありますか?

+2

いいえ、そうではありません。 –

+0

あなたのロジックや人間の読みやすさに応じて、パフォーマンス上の問題ではなく、名前空間を使用する必要があります。 –

答えて

13

実行時のパフォーマンスには影響しません。

これはコンパイル時のパフォーマンスに影響するかもしれませんが、それはまったく重要であるとは思っていません。どのような影響を与えるか予測したくないと思っています。 (長いコンパイル時に問題がありますか?そうであれば、それを試してから差分を測定することができます。そうでなければ、本当に効果を知ることはできません。問題がなければ、本当に重要です。)

+0

ハードリアルタイム(サブミリ秒のパフォーマンス)を気にしない場合は、これについて心配する必要はありません。人間の応答時間に与える影響は最小限です。私は、 "using namespace"のコーディングが、それ自身のコストを持つことができるコードを読みにくくすることにつながると付け加えます。リターンを減少させる法律を覚えておいてください。どのくらい速く行く必要がありますか?このコアスピードは今までのボトルネックになりますか? Webアプリケーションの場合はおそらくそうではないので、心配しないでください。 –

5

名前空間にクラスを置くことは、コンパイル時間に大きな影響を与えないことは間違いありません。

しかし、すべてのクラスを同じ名前空間に入れると、論理的なプロジェクト構造が失われる可能性があることに注意してください。

I(およびResharper)は、ファイルの場所に対応する名前空間(プロジェクト構造に対応)を使用することを推奨します。

2

あなたのロジックと人間の読みやすさに応じて、パフォーマンス上の問題ではなく、ネームスペースを使用する必要があります。

関連する問題