名前空間を使用して `ん。`より多くのメモリを消費しますか?
-
05-09-2019 - |
質問
Using Namespace;
がより多くのメモリを消費していますか?
私は現在、モバイルアプリケーションに取り組んでいると私は、クラスを作成するときに自分のアプリケーションを実行するためにいくつかの余分なメモリを必要としますVisual Studioの場所ということ。
ステートメントを使用して、不要なものをもし興味があるだけでした解決
簡単に言えば:なし
これらの書類は、ILの任意の形式に変換されていません。彼らは(醜い!)完全修飾型名を使用しないようにだけショートカットをしています。 しかし、あなたはVS2008および/またはRの#を使用している場合は、自動的に未使用のものを削除することができます。
他のヒント
名前空間を使用すると、開発中の時間を節約することができますC#のコンパイル時のみの機能です。 using
ディレクティブは、あなたのコード内の速記タイプ名をルックアップするために、コンパイラによって利用されます。
基本的に、コンパイラは、それが各using
ディレクティブを取り、その型の名前にそれを付加し、その完全修飾名が解決するかどうか見て知っていないことを、あなたのコード内で型名に遭遇するたびに。
一度アプリケーションは、名前空間をコンパイルされ、ILがそれらを必要としないようusing
ディレクティブがなくなってます。
「メモリ」による場合は、はい、その後、「私は私が最初の場所で先頭にステートメントを使用して、それらを置く理由を覚えている」という意味。
しかし、何もないという意味で、あなたは意味しません。 .NETアセンブリは、典型的には、オンデマンドでロードされているので、あなたはそれらの余分のステートメントを持つことによって、任意のパフォーマンスの低下を招くことはありません。しかし、保守のために、あなたはそれらを削除することをお勧めします。
ここでは、この文脈での「使用」キーワードのマイクロソフトの情報です://msdn.microsoft.com/en-us/library/sf0df423.aspxする
。それは基本的にアセンブリに完全修飾名を使用する代わりを提供していますが、それは実際にその特定のキーワードでメモリ内のアセンブリをインポートしたり、含まれていません。いいえ、それはしていません。単にあなたが唯一のタイプ名を使用できるように簡略化したものです。
のStringBuilder
名前空間修飾型名とは対照的に:
System.Text.StringBuilder
usingステートメントが宣言されているファイルでます。
いいえ、それは唯一のコンパイラはほんの少し遅くなるようになります。)
これはしていません。あなたがあなたのフルネームで使用しているオブジェクトを定義する必要がないように使用します。代わりにSystem.IO.FileのあなたがSystem.IOを使用している場合は、単にファイル行うことができます。
あなたが実際にオブジェクトを作成するまで、これは、メモリにロードされていません。 .NETフレームワークは、ターゲットマシンにインストールされ、GACにロードされているので、C ++とは異なり、ライブラリ全体では、インポートされていない、とカスタム.dllには、アプリケーションフォルダのbinフォルダにあります。